go字面量常量

Posted 技术颜良

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go字面量常量相关的知识,希望对你有一定的参考价值。

鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。

 

题图:Go1.18 发布,一个重大的版本

刊首语

上期题目是关于取模运算符的。

以下代码输出什么?

package main

import "fmt"

func main() 
 fmt.Println(1 % 2.0)
 fmt.Println(int(1) % 2.0)

A:1 1;B:1.0 1.0;C:编译不通过;D:1.0 1

正确答案 C,该题正确率 60%,还不错。这里有一点:% 运算只能用于 整数类型。1 % 2.0,两个操作数都是字面量常量,都是无类型的,这时会以 2.0 的 untype float constant 为准,1 隐式转为 untype float constant,所以编译错误。

而 int(1) % 2.0 中,2.0 是无类型的,int(1) 是 int,因此 2.0 会转为 int,因此能正常编译。

本期题目:以下代码输出什么?

func main() 
  var m sync.Mutex
  fmt.Print("A, ")
  m.Lock()

  go func() 
    time.Sleep(200 * time.Millisecond)
    m.Unlock()
  ()

  m.Lock()
  fmt.Print("B ")

以上是关于go字面量常量的主要内容,如果未能解决你的问题,请参考以下文章

你不知道的 Go 之 const

Go基础基础语法

go 指针

Golang学习之路:Go+体验分享及字面量讲解

C++基础知识之常量(字面量) 变量

你所没有听说过的常量变量字面量在这里!