






















参考:https://www.bilibili.com/video/BV14Cetz4E43
1.变量定义.go
package main import ( "fmt" "go_study/version" ) var ( s1 string = "hello world1" s2 string = "hello world2" ) // TIP <p>To run your code, right-click the code and select <b>Run</b>.</p> <p>Alternatively, click // the <icon src="AllIcons.Actions.Execute"/> icon in the gutter and select the <b>Run</b> menu item from here.</p> func main() { //TIP <p>Press <shortcut actionId="ShowIntentionActions"/> when your caret is at the underlined text // to see how GoLand suggests fixing the warning.</p><p>Alternatively, if available, click the lightbulb to view possible fixes.</p> s := "gopher" s = "tt" fmt.Printf("Hello and welcome, %s!\n", s) for i := 1; i <= 5; i++ { //TIP <p>To start your debugging session, right-click your code in the editor and select the Debug option.</p> <p>We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint // for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.</p> fmt.Println("i =", 100/i) } var rtes string = "ddd" var a1, a2 = 3, 4 fmt.Println("版本号:", version.Version) fmt.Printf("%p, %p", &a1, &a2, rtes) hello() } func hello() { fmt.Println("Hello World") }
2.输入输出.go
package main import "fmt" func main() { fmt.Println("Hello World", "你好") fmt.Printf("%c\n", 'a') fmt.Printf("%s\n", "你好") // 字符串 fmt.Printf("%d\n", 3) // 整数 fmt.Printf("%.2f\n", 3.1459) //保留两位小数 3.15 var t int32 = '中' fmt.Printf("%c\n", t) //rune 是 Go 语言中的 字符类型,本质上是 int32,用于表示一个 Unicode 码点(code point)。 var t2 rune = '中' fmt.Printf("%c\n", t2) fmt.Printf("%c -> %U\n", 'A', 'A') // A -> U+0041 fmt.Printf("%c -> %U\n", '你', '你') // 你 -> U+4F60 //for...range 会自动把 string 拆成 rune 单位,而不是 byte! str := "你好Go" runes := []rune(str) //可以算出算符数 fmt.Println(len(str)) // 字节数(UTF-8):8 fmt.Println(len(runes)) // 字符数(rune):4 fmt.Println(string(runes)) // 还能转回字符串 //UTF-8 下:1个中文字符占 3个字节,但在 Go 中用 1 个 rune 表示(int32)。. var tmp = 133 fmt.Printf("%p\n", &tmp) //输出0xf4552890070 fmt.Printf("%T, %T, %T\n", 3.14159, "字符", &tmp) //类型 float64, string, *int fmt.Printf("%v,%v,%v,%v, %v\n", "你好", "", 123, tmp, &tmp) //输出原始数据 你好,,123,133, 0x11cb60b220e0 fmt.Printf("%#v,%#v,%#v,%#v, %#v\n", "你好", "", 123, tmp, &tmp) //输出 "你好","",123,133, (*int)(0x15767fb160e0) fmt.Printf("请输入你名字:\n") var name string _, err := fmt.Scan(&name) //返回的第一个值不使用, 用_代替 if err != nil { return } fmt.Println("请输入年龄:") var age int _, err = fmt.Scan(&age) if err != nil { return } fmt.Printf("名字:%s, 年龄:%d\n", name, age) }
3.基本数据类型.go
package main import ( "fmt" "reflect" "strings" "unsafe" ) /* * 1.整数型 2.浮点型 3.复数 4.布尔 5.字符串 */ func main() { var n1 int = 100 //int在64位系统中为64 size := unsafe.Sizeof(n1) fmt.Printf("n1 的类型 %T, 大小为:%d\n", n1, size) //n1 的类型 int, 大小为:8 fmt.Printf("rune类型的大小为: %d\n", unsafe.Sizeof(rune(0))) //rune固定为32位 rune类型的大小为: 4 fmt.Printf("byte类型的大小为: %d\n", unsafe.Sizeof(byte(0))) //byte类型的大小为: 1 var f interface{} = 3.14 fmt.Printf("f的类型是%T\n", f) fmt.Println("f的类型是", reflect.TypeOf(f)) fmt.Println("f的类型名是:", reflect.TypeOf(f).Name()) var f2 interface{} = []int{3, 4, 5} fmt.Print("f2的类型是:", reflect.TypeOf(f2)) var f3 interface{} = map[string]int{"a": 1, "b": 2} fmt.Println("f3的类型是", reflect.TypeOf(f3)) fmt.Println("hello '' haha''") fmt.Println(` 可换行的 数据 `) var zero int var float float32 fmt.Println(zero, float) var sb strings.Builder for i := 0; i < 10; i++ { sb.WriteString("hello world\n") } fmt.Println(sb.String()) }
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。