主页 > 游戏开发  > 

go-学习笔记-1


go - 学习笔记 -1 hello world变量值拷贝匿名变量语句分隔符整型&浮点型&布尔型字符串类型strings包的字符串函数


hello world package main import "fmt" func main() { fmt.Println("hello world") } 变量 package main import "fmt" func main() { // (1)先声明 在赋值 // 声明变量 var 变量名 类型 var age int fmt.Println(age) // 声明未复制,有默认值 age = 22 fmt.Println(age) // (2)声明并赋值,一行实现 var name string name = "lin" fmt.Println(name) //var newName string = "new lin" var newName = "new lin" fmt.Println(newName) // (3)声明并赋值的简洁写法 name2 := "lin2" // 全局变量,不可以使用 := 的这种简洁语法,必须用 var 去声明赋值 fmt.Println(name2) // (4)声明多个变量 var ( a int // 0 b string // "" c bool // false ) fmt.Println(a) fmt.Println(b) fmt.Println(c) // (5) 一行声明赋值多个变量 //var mingzi, nianling, hunfou = "lin", 33, false mingzi, nianling, hunfou := "lin", 33, false fmt.Println(mingzi, nianling, hunfou) } 值拷贝 package main import "fmt" func main() { // (1) 值拷贝 var x = 10 var y = x x = 20 fmt.Println(x) fmt.Println(y) // (2) var a = 1 + 1 fmt.Println(a) var b = x * y fmt.Println(b) } 匿名变量 package main import "fmt" func foo() (int, int) { return 100, 2 } func main() { //var a, _ = 1,2 var a, _ = foo() fmt.Println(a) } 语句分隔符 package main import "fmt" func main() { // ;和换行符,作为语句分隔符 //var x = 100; y = 200 // 推荐用换行符作为分割符,会有更好的阅读性 var x = 100 var y = 200 fmt.Println(x, y) } 整型&浮点型&布尔型 package main import ( "fmt" "reflect" ) func main() { // (1) 整型 /* int8 可存1一个字节, 范围是:-128至127 int16 可存2个字节, 范围是:-32768至32767 int32 可存4个字节, 范围是:-2147483648至2147483647 int64 可存8个字节, 范围是:-9223372036854775808至9223372036854775807 uint8 可存1个字节, 范围是:0至255 uint16 可存2个字节, 范围是:0至65535 uint32 可存4个字节, 范围是:0至4294967295 uint64 可存8个字节, 范围是:0至18446744073709551615 */ var x int8 = 100 var y int16 = 200 fmt.Println(x, y) // (2)浮点型 /* float32 可存4个字节, 范围是:-3.402823466e+38至3.402823466e+38 float64 可存8个字节, 范围是:-1.7976931348623157e+308至1.7976931348623157e+308 */ var f1 float32 = 3.14159267890123 var f2 float64 = 3.14159267890123 fmt.Println(f1, reflect.TypeOf(f1)) fmt.Println(f2, reflect.TypeOf(f2)) var f3 = 2e10 fmt.Println(f3, reflect.TypeOf(f3)) // (3)布尔型 var b1 bool = true var b2 bool = false fmt.Println(b1, reflect.TypeOf(b1)) fmt.Println(b2, reflect.TypeOf(b2)) c := 2 > 1 fmt.Println(c, reflect.TypeOf(c)) name := "lin" c2 := name == "root" fmt.Println(c2, reflect.TypeOf(c2)) fmt.Println(name, reflect.TypeOf(name)) } 字符串类型 package main import "fmt" func main() { var s string // 默认为"" s = "hello yuan" // 索引和切片 字符串 [索引] 字符串[start:end] go不支持负数索引 fmt.Println(string((s[1]))) fmt.Println(string((s[6]))) fmt.Println(string((s[0:5]))) fmt.Println(string((s[:5]))) fmt.Println(string((s[6:10]))) fmt.Println(string((s[6:]))) // 字符串拼接 var s1 = "hi" var s2 = " yuan" fmt.Println(s1 + s2) // 转义符号 \反斜杠 fmt.Println(string("1\n2\n3")) var s3 = "D:\\next\\go.exe" fmt.Println(s3) fmt.Println("It is \"main\".") // 多行打印 fmt.Println("1. 红药") fmt.Println("2. 蓝药") fmt.Println("3. 武器") info := ` 1. 红药 2. 蓝药 3. 武器 ` fmt.Println(info) } strings包的字符串函数 package main import ( "fmt" "strings" ) func main() { // 大小写转换 var name = "Yuan" var newName = strings.ToUpper(name) fmt.Println(name) fmt.Println(newName) fmt.Println(strings.ToLower(name)) // 包含 var s = "rain yuan alivin" fmt.Println(strings.HasPrefix(s, "rain")) // 以xx开头 fmt.Println(strings.HasPrefix(s, "in")) // 以xx结尾 fmt.Println(strings.Contains(s, "yuan")) // 是否包含xx // 去除空格 username := " yuan " fmt.Println(strings.Trim(username, " ")) // 去除空格,返回无空格的字符串 fmt.Println(username == "yuan") fmt.Println(strings.TrimSpace(username)) // 去掉前后空格 fmt.Println(strings.TrimLeft(username, " ")) // 去掉作弊的空格 // index 索引 var s2 = "rain yuan alvin" fmt.Println(strings.Index(s2, "yuan")) fmt.Println(strings.Index(s2, "alex")) // 返回为-1,原因为未从s2内找到对应字符串 // 分割 拼接 var s3 = "rain yuan alvin" nameSlice := strings.Split(s3, " ") fmt.Println(nameSlice) fmt.Println(nameSlice[0]) fmt.Println(nameSlice[1]) fmt.Println(nameSlice[2]) var newStr = strings.Join(nameSlice, ",") fmt.Println(newStr) }
标签:

go-学习笔记-1由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“go-学习笔记-1