第5章:函数—体系函数_奇闻趣事网

第5章:函数—体系函数

奇闻趣事 2023-05-04 17:38www.bnfh.cn奇闻趣事

第5章函数—系统函数

字符串相关函数

【1】统计字符串的长度,按字节进行统计

len(str) 使用内置函数也不用导包的,直接用就行

    // len统计字符串的长度,按字节进行统计
	// 在golang中,汉字是utf-8字符集,一个汉字3个字节
	str := "golang你好"
	// 12字节
	fmt.Println(len(str))

【2】字符串遍历

(1)利用方式1for-range键值循环

    // 对字符串进行遍历
	// 方式1利用键值循环,for-range
	for i ,value := range str {
		fmt.Printf("索引为%d,具体的值为%c 
", i, value)
	}


(2)r:=[]rune(str)

    // 方式2 利用r:=[]rune(str)
	r := []rune(str)
	for i := 0; i < len(r); i++ {
		fmt.Printf("%c 
",r[i])
	}

【3】字符串转整数

    import (
	"fmt"
	"strconv"
    )
    n,err := strconv.Atoi("66")
	fmt.Println(n,err)

【4】整数转字符串

    str = strconv.Itoa(6688)
	fmt.Println(str)

【5】查找子串是否在指定的字符串中:

    // 查找子串是否在指定的字符串中
	fmt.Println(strings.Contains("javaandgolang","go"))

【6】统计一个字符串有几个指定的子串:

    // 统计一个字符串中有几个指定的子串
	fmt.Println(strings.Count("javaandgolang","a"))

【7】不区分大小写的字符串比较:

    //不区分大小写的字符串比较
	flag := strings.EqualFold("hello","HELLO")
	fmt.Println(flag)

	//区分大小写的字符串比较
	fmt.Println("hello" == "HELLO")

【8】返回子串在字符串第一次出现的索引值,如果没有返回-1 :

    // 返回子串在字符串第一次出现的索引值,如果没有返回-1 :
	index := strings.Index("javaandgolang","a")
	fmt.Println(index)

【9】字符串的替换

func Replace(s, old, ne string, n int) string

n可以指定你希望替换几个,如果n=-1表示全部替换,替换两个n就是2

    // 字符串的替换
	s1 := strings.Replace("goandjavagogo","go","golang",2)
	s2 := strings.Replace("goandjavagogo","go","golang",-1)
	fmt.Println(s1)
	fmt.Println(s2)

【10】按照指定的某个字符,为分割标识,将一个学符串拆分成字符串数组:

    // 按照指定的某个字符,为分割标识,将一个学符串拆分成字符串数组:
	arr := strings.Split("go,java,css",",")
	fmt.Println(arr)

【11】将字符串的字母进行大小写的转换:

    //将字符串的字母进行大小写的转换:
	fmt.Println(strings.ToLoer("Go"))
	fmt.Println(strings.ToUpper("go"))

【12】将字符串左右两边的空格去掉:

    // 将字符串左右两边的空格去掉:
	var s3 string = "    go  and java   "
	fmt.Println(s3)
	s3 = strings.TrimSpace(s3)
	fmt.Println(s3)

【13】将字符串左右两边指定的字符去掉:

    // 将字符串左右两边指定的字符去掉:
	fmt.Println(strings.Trim("-golang-","-"))

【14】将字符串左边指定的字符去掉:

    // 将字符串左边指定的字符去掉:
	fmt.Println(strings.TrimLeft("-golang-","-"))

【15】将字符串右边指定的字符去掉:

    // 将字符串右边指定的字符去掉:
	fmt.Println(strings.TrimRight("-golang-","-"))

【16】判断字符串是否以指定的字符串开头:

    // 判断字符串是否以指定的字符串开头: 
	fmt.Println(strings.HasPrefix("http://.sddzcyz.","http"))

【17】判断字符串是否以指定的字符串结束:

    // 判断字符串是否以指定的字符串结束: 
	fmt.Println(strings.HasSuffix("13344.png","png"))

日期和时间相关函数

【1】时间和日期的函数,需要到入time包,所以你获取当前时间,就要调用函数No函数

package main

import (
	"fmt"
	"time"
)
func main()  {
	//  时间和日期的函数,需要到入time包,所以你获取当前时间,就要调用函数No函数
	no := time.No()
	// No()返回值是一个结构体,类型是time.Time
	fmt.Printf("%v --- 对应的类型为%T	
",no,no)
	// 2023-04-07 21:57:20.2036813 +0800 CST m=+0.000996101 --- 对应的类型为time.Time

	fmt.Printf("年%v 
",no.Year())
	fmt.Printf("月%v 
",no.Month())
	fmt.Printf("月%v 
",int(no.Month()))
	fmt.Printf("日%v 
",no.Day())
	fmt.Printf("时%v 
",no.Hour())
	fmt.Printf("分%v 
",no.Minute())
	fmt.Printf("秒%v 
",no.Second())
}

【2】日期的格式化

(1)将日期以年月日时分秒按照格式输出为字符串

    // 将日期以年月日时分秒按照格式输出为字符串
	fmt.Printf("当前年月日%d-%d-%d 时分秒%d:%d:%d 
",no.Year(),no.Month(),no.Day(),no.Hour(),no.Minute(),no.Second())
	dateStr := fmt.Sprintf("当前年月日%d-%d-%d 时分秒%d:%d:%d 
",no.Year(),no.Month(),no.Day(),no.Hour(),no.Minute(),no.Second())
	fmt.Println(dateStr)

(2)按照指定格式

    // 按照指定格式
	dateStr2 := no.Format("2006/01/02 15/04/05")
	fmt.Println(dateStr2)
	dateStr3 := no.Format("2006-01-02 15:04:05")
	fmt.Println(dateStr3)

	dateStr4 := no.Format("2006 15:04")
	fmt.Println(dateStr4)

内置函数

【3】常用函数

(1)len函数

统计字符串的长度,按字节进行统计

func len(v Type) int
根据变量v类型的不同,len返回值的意义也不同
数组:v中的元素的个数.
数组指针 v中元素的个数
Slice或map: v中的元素的个数; 如果v==nil, len(v)为0.
字符串: v中的字节数.
Channel: the number of elements queued (unread) in the channel buffer;channel缓冲区中未读的元素个数。
如果v==nil, len(v)为0 .
package main

import "fmt"
func main()  {
	str := "golang"
	fmt.Println(len(str))
}

(2)ne函数

分配内存,主要用来分配值类型(int系列, float系列, bool, string、数组和结构体struct)

    func ne(Type) Type
    内建函数ne分配内存。其第一个实参为类型, 而非值。其返回值为指向该类型的新分配的零值的指针。
    num := ne(int)
	fmt.Printf("num的类型%T,num的值是%v,num的地址%v,num指针指向的值是%v",num,num,&num,num)



(3)make函数

分配内存,主要用来分配引用类型(指针、slice切片、map、管道chan、interface 等)


参考源码「链接」

参考个人博客cyz

Copyright © 2016-2025 www.bnfh.cn 怪异网 版权所有 Power by