Golang 101(Go语言101 中文版) v1.21.a当然,上面所示的结构体值的组合字面量也可以用来表示结构体类型的非零 值。 对于类型S的一个值v,我们可以用v.x和v.y来表示它的字段。 v.x(或v.y) 这种形式称为一个选择器(selector)。其中的v称为此选择器的属主。 今后, 我们称一个选择器中的句点.为属性选择操作符。 一个例子: 1| package main 2| 3| import ( 4| "fmt" 5| ) 6| 7| type Book{} 20 | // title字段空字符串"",pages字段为0。 21 | book = Book{author: "老貘"} 22 | 23 | // 使用选择器来访问和修改字段值。 24 | var book2 Book // <=> book2 := Book{} 25 | book2.author = "Tapir" 26 | Book{}.Pages = 123 18 | p = &Book{}.Pages // <=> p = &(Book{}.Pages) 19 | */ 20 | } 注意:选择器中的属性选择操作符.的优先级比取地址操作符&的优先级要 高。 组合字面量不可寻址但可被取地址 一般来说,只有可被寻址的值才能被取地址,但是Go中有一个语法糖(语法 例外):虽然所有的组合字面量都是不可寻址的,但是它们都可被取地址。0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a当然,上面所示的结构体值的组合字面量也可以用来表示结构体类型的非零 值。 对于类型S的一个值v,我们可以用v.x和v.y来表示它的字段。 v.x(或v.y)这 种形式称为一个选择器(selector)。其中的v称为此选择器的属主。 今后,我 们称一个选择器中的句点.为属性选择操作符。 一个例子: package main import ( "fmt" ) type Book struct { title ages字段的值为0。 book = Book{} // title字段空字符串"",pages字段为0。 book = Book{author: "老貘"} // 使用选择器来访问和修改字段值。 var book2 Book // <=> book2 := Book{} book2.author = "Tapir" book2.pages = 300 Pages也是不可寻址的。 /* Book{}.Pages = 123 p = &Book{}.Pages // <=> p = &(Book{}.Pages) */ } 注意:选择器中的属性选择操作符.的优先级比取地址操作符&的优先级要高。 组合字面量不可寻址但可被取地址 一般来说,只有可被寻址的值才能被取地址,但是Go中有一个语法糖(语法例 外):虽然所有的组合字面量都是不可寻址的,但是它们都可被取地址。0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a当然,上面所示的结构体值的组合字面量也可以用来表示结构体类型的非零值。 对于类型S的一个值v,我们可以用v.x和v.y来表示它的字段。 v.x(或v.y) 这种形式称为一个选择器(selector)。其中的v称为此选择器的属主。 今后,我 们称一个选择器中的句点.为属性选择操作符。 一个例子: 1| package main 2| 3| import ( 4| "fmt" 5| ) // title字段空字符串"",pages字段为0。 第16章:结构体 130 21| book = Book{author: "老貘"} 22| 23| // 使用选择器来访问和修改字段值。 24| var book2 Book // <=> book2 := Book{} 25| book2.author = "Tapir" 26| book2 Book{}.Pages = 123 18| p = &Book{}.Pages // <=> p = &(Book{}.Pages) 19| */ 20| } 注意:选择器中的属性选择操作符.的优先级比取地址操作符&的优先级要高。 组合字面量不可寻址但可被取地址 一般来说,只有可被寻址的值才能被取地址,但是Go中有一个语法糖(语法例 外):虽然所有的组合字面量都是不可寻址的,但是它们都可被取地址。0 码力 | 591 页 | 21.40 MB | 1 年前3
Go 入门指南(The way to Go)fieldname = value 。 同样的,使用点号符可以获取结构体字段的值: structname.fieldname 。 在 Go 语言中这叫 选择器(selector)。无论变量是一个结构体类型还是一个结构体类型指针,都使用同 样的 选择器符(selector-notation) 来引用结构体的字段: type myStruct struct { i int } var v myStruct source(ch chan<- int){ for { ch <- 1 } } func sink(ch <-chan int) { for { <-ch } } 习惯用法:管道和选择器模式 更具体的例子还有协程处理它从通道接收的数据并发送给输出通道: Go入门指南 - 326 - 本文档使用 看云 构建 sendChan := make(chan int) reciveChan inValue out <- result } } 通过使用方向注解来限制协程对通道的操作。 这里有一个来自 Go 指导的很赞的例子,打印了输出的素数,使用选择器(‘筛’)作为它的算法。每个 prime 都有一个选择器,如下图: 版本1:示例 14.7-sieve1.go Go入门指南 - 327 - 本文档使用 看云 构建 // Copyright 2009 The Go Authors0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)给字段赋值: structname.fieldname = value 。 同样的,使用点号符可以获取结构体字段的值: structname.fieldname 。 在 Go 语言中这叫 选择器(selector)。无论变量是一个结构体类型还是一个结构体类型指针,都使用同样的 选 择器符(selector-notation) 来引用结构体的字段: 1. type myStruct struct func 关键字之后的括号中指定 receiver。 如果 recv 是 receiver 的实例,Method1 是它的方法名,那么方法调用遵循传统的 object.name 选择器 符号:recv.Method1()。 如果 recv 一个指针,Go 会自动解引用。 如果方法不需要使用 recv 的值,可以用 _ 替换它,比如: 1. func (_ receiver_type) for { ch <- 1 } 7. } 8. 9. func sink(ch <-chan int) { 10. for { <-ch } 11. } 习惯用法:管道和选择器模式 更具体的例子还有协程处理它从通道接收的数据并发送给输出通道: 1. sendChan := make(chan int) 2. reciveChan := make(chan string)0 码力 | 466 页 | 4.44 MB | 1 年前3
05. OpenKruise镜像预热实践_王思宇parallelism: 10 # [optional] 最大并发拉取的节点梳理, 默认为 1 selector: # [optional] 指定节点的 名字列表 或 标签选择器 (只能设置其中一种) names: - node-1 - node-2 matchLabels: node-type: xxx completionPolicy: type: Always0 码力 | 28 页 | 5.78 MB | 1 年前3
共 6 条
- 1













