go初识
for循环
for i := 1; i < 5; i++ { fmt.Println(i*i) } ls := "agd" for _, arg := range ls{ fmt.Println(string(arg)) }
格式化输出
%d int 变量 %x, %o, %b 分别为 16 进制,8 进制,2 进制形式的 int %f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00 %t 布尔变量:true 或 false %c rune (Unicode 码点),Go 语言里特有的 Unicode 字符类型 %s string %q 带双引号的字符串 "abc" 或 带单引号的 rune 'c' %v 会将任意变量以易读的形式打印出来 %T 打印变量的类型 %% 字符型百分比标志(%符号本身,没有其他操作)
运算符优先级
有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:
优先级 | 运算符 |
---|---|
7 | ^ ! |
6 | * / % << >> & &^ |
5 | + - | ^ |
4 | == != < <= >= > |
3 | <- |
2 | && |
1 | || |
指针引用
func main() { var a int = 10 var b *int b = &a fmt.Println(b, *b) }
package main import ( "fmt" ) type Books struct { title string author string subject string book_id int } func main() { // 创建一个新的结构体 fmt.Println(Books{"go语言", "zhou", "go教程", 01}) // 也可以使用 key=>value 格式 fmt.Println(Books{title: "go11", author: "zhou11", subject: "gojiaocheng", book_id: 02}) // 忽略的字段为 0 或 空 fmt.Println(Books{title:"go22", author:"zhou22"}) } //{go语言 zhou go教程 1} //{go11 zhou11 gojiaocheng 2} //{go22 zhou22 0}
==
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books // 声明Book1 为 Books 类型 // Book1 的描述 Book1.title = "go" Book1.author = "zhou" Book1.subject = "go教程" Book1.book_id = 01 fmt.Println(Book1.title, Book1.author, Book1.subject, Book1.book_id) } // go zhou go教程 1
结构体作为函数参数
你可以像其他数据类型一样将结构体类型作为参数传递给函数。并以以上实例的方式访问结构体变量:
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books // 声明book1 为 Books 类型 // book1 的描述 Book1.title = "go" Book1.author = "zhou" Book1.subject = "go教程" Book1.book_id = 01 printBook(Book1) } func printBook(book Books) { fmt.Println(book.title) fmt.Println(book.author) fmt.Println(book.subject) fmt.Println(book.book_id) }
结构体指针
你可以定义指向结构体的指针类似于其他指针变量,格式如下:
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books // 声明book1 为 Books 类型 // book1 的描述 Book1.title = "go" Book1.author = "zhou" Book1.subject = "go教程" Book1.book_id = 01 printBook(&Book1) } func printBook(book *Books) { fmt.Println(book.title) fmt.Println(book.author) fmt.Println(book.subject) fmt.Println(book.book_id) }
两个主要区别: 形参和实参
形参是指针类型,实参需要传变量地址