Go每日一题(108) 的题目如下

3715 次点击 · 8 赞 ·大约8小时之前 开始浏览   · 来源「Golang来啦」

下面代码输出正确的是?

func main() {
	i := 1
	s := []string{"A", "B", "C"}
	i, s[i-1] = 2, "Z"
	fmt.Printf("s: %v \n", s)
}
  • A. s: [Z,B,C]
  • B. s: [A,Z,C]
3715 阅读
42 回复
zyicy
zyicy · #1 · 3年之前

mark

brothersam
brothersam · #2 · 3年之前

这个没啥坑吧。靠,坑

Zuos
Zuos · #3 · 3年之前

mark

feiyang
feiyang · #4 · 3年之前

多重赋值分为两个步骤,有先后顺序:计算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式;赋值; 知识点:多重赋值。

NovaChaos
NovaChaos · #5 · 3年之前

mk

_Aiden_
_Aiden_ · #6 · 3年之前

mark

Dessert
Dessert · #7 · 3年之前

赋值表达式优先级:先计算等号左边所有

mingtop
mingtop · #8 · 3年之前

赋值还能这么玩。。

hasbug
hasbug · #9 · 3年之前

mark

QRQRQRqrqr
QRQRQRqrqr · #10 · 3年之前

func main() { i := 1 s := []string{"A", "B", "C"} i, s[i-1] = 2, "Z" fmt.Printf("s: %v \n", s) }

知识点:多重赋值。

多重赋值分为两个步骤,有先后顺序: 计算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式; 赋值; 所以本例,会先计算 s[i-1],等号右边是两个表达式是常量,所以赋值运算等同于 i, s[0] = 2, "Z"。

jatshw
jatshw · #11 · 3年之前

m

euibieur894
euibieur894 · #12 · 3年之前

打卡

droice
droice · #13 · 3年之前

ka

AntonyZhang
AntonyZhang · #14 · 3年之前

mark

hypersus
hypersus · #15 · 3年之前

打哈

huanfengnt
huanfengnt · #16 · 2年之前

这个挺好理解的其实

huangyf168
huangyf168 · #17 · 2年之前

mark

yayaleslie
yayaleslie · #18 · 2年之前

mark

hasbug
hasbug · #19 · 2年之前

mark

Dessert
Dessert · #20 · 2年之前

多重赋值的先后顺序:

1、计算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式; 2、赋值;

wzbwzt
wzbwzt · #21 · 2年之前

1

wong
wong · #22 · 2年之前

牛的

cainiaoyige01
cainiaoyige01 · #23 · 2年之前

mark

feiyang
feiyang · #24 · 2年之前

会先计算 s[i-1],等号右边是两个表达式是常量,所以赋值运算等同于 i, s[0] = 2, "Z"。

huangyf168
huangyf168 · #25 · 2年之前

mark

flyZ
flyZ · #26 · 2年之前

mark

YuPeng
YuPeng · #27 · 2年之前

打卡

HeartLeo
HeartLeo · #28 · 2年之前

mark

hasbug
hasbug · #29 · 2年之前

mark

oYto
oYto · #30 · 2年之前

https://oyto.github.io/categories/ 这里整理了go的每日一题,有需要的uu可以一起学习参考

YuPeng
YuPeng · #31 · 2年之前

mark

hasbug
hasbug · #32 · 2年之前

mark

528548004
528548004 · #33 · 2年之前

mark

cllgeek
cllgeek · #34 · 2年之前

太基础了

brothersam
brothersam · #35 · 大约1年之前

error too

jinxinli
jinxinli · #36 · 大约1年之前

m

zhangwei_go
zhangwei_go · #37 · 大约1年之前

参考答案及解析:A。

知识点:多重赋值。

多重赋值分为两个步骤,有先后顺序: 计算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式; 赋值;

YuPeng
YuPeng · #38 · 大约1年之前

mark

brothersam
brothersam · #39 · 大约1年之前

A. s: [Z,B,C]

johnny_wu
johnny_wu · #40 · 大约1年之前

mark

flyx
flyx · #41 · 8月之前

打卡

jianggushi
jianggushi · #42 · 大约1个月之前

多重赋值,先左边,后右边

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传