指针变量 * 和地址值 & 的区别:指针变量保存的是一个地址值,会分配独立的内存来存储一个整型数字。当变量前面有 * 标识时,才等同于 & 的用法,否则会直接输出一个整型数字。
func main() { var a int = 4 var ptr *int ptr = &a println("a的值为", a); // 4 println("*ptr为", *ptr); // 4 println("ptr为", ptr); // 824633794744 }
在定义常量组时,如果不提供初始值,则表示将使用上行的表达式。
package main import "fmt" const ( a = 1 b c d ) func main() { fmt.Println(a) // b、c、d没有初始化,使用上一行(即a)的值 fmt.Println(b) // 输出1 fmt.Println(c) // 输出1 fmt.Println(d) // 输出1 }
a = "hello" unsafe.Sizeof(a)
输出结果为:16
字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节,所以字符串类型大小为 16 个字节。
空白标识符在函数返回值时的使用:
package main import "fmt" func main() { _,numb,strs := numbers() //只获取函数返回值的后两个 fmt.Println(numb,strs) } //一个可以返回多个值的函数 func numbers()(int,int,string){ a , b , c := 1 , 2 , "str" return a,b,c }
输出结果:
2 str
字符串去除空格和换行符
package main import ( "fmt" "strings" ) func main() { str := "这里是 www\n.facesoho\n.com" fmt.Println("-------- 原字符串 ----------") fmt.Println(str) // 去除空格 str = strings.Replace(str, " ", "", -1) // 去除换行符 str = strings.Replace(str, "\n", "", -1) fmt.Println("-------- 去除空格与换行后 ----------") fmt.Println(str) }
输出结果为:
-------- 原字符串 ---------- 这里是 www .facesoho .com -------- 去除空格与换行后 ---------- 这里是www.facesoho.com
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
2135Go 语言运算符
指针变量 * 和地址值 & 的区别:指针变量保存的是一个地址值,会分配独立的内存来存储一个整型数字。当变量前面有 * 标识时,才等同于 & 的用法,否则会直接输出一个整型数字。
2134Go 语言常量
在定义常量组时,如果不提供初始值,则表示将使用上行的表达式。
2133Go 语言常量
输出结果为:16
字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节,所以字符串类型大小为 16 个字节。
2132Go 语言变量
空白标识符在函数返回值时的使用:
输出结果:
2131Go 语言数据类型
字符串去除空格和换行符
输出结果为: