理解特定类型变量的初始化

huangapple go评论86阅读模式
英文:

Understanding the initialisation of a variable of particular type

问题

下面的初始化是如何进行的?

对我来说,它看起来像是test行为更像一个函数..接受一个参数并返回相同的值。

我知道这很基础,但我无法弄清楚这里发生了什么。稍微解释一下会很有帮助。这是一种在单行中进行赋值和初始化的快捷符号吗?

package main

import (
	"fmt"
)

type test int

func main() {
	fmt.Println(test(20))
}

这段代码中,test(20) 是将整数值20转换为类型为test的变量。在Go语言中,可以通过在类型名称后面加上括号并提供相应的值来进行类型转换。在这种情况下,将整数20转换为类型为test的变量,并将其打印出来。这种方式可以用于将一个类型转换为另一个类型,但需要确保两个类型是兼容的。

英文:

How is the below initialisation happening?

tT me it looks like test is behaving more like a function.. taking an argument and return the same.

I know its very basic, but i cant figure it out what is happening here. a little explanation would be helpful. Is this some kind of shortcut notation for assignment and initialisation in single line?

package main

import (
	"fmt"
)

type test int

func main() {
	fmt.Println(test(20))
}

答案1

得分: 1

引用的代码中没有变量。有一个类型test,其底层类型是int。你看到的“像函数一样运行”是将字面量20转换为类型test的类型转换。

我强烈建议你参加Go之旅,它涵盖了所有的语言基础知识,并提供了示例和解释,只需要几分钟的时间。特别要注意类型和类型转换部分。

英文:

There are no variables in the quoted code. There is a type, test, whose underlying type is int. What you see "behaving like a function" is a type conversion from the literal 20 to the type test.

I highly recommend taking the Tour of Go, which covers all the language basics with examples and explanations and only takes a few minutes. In particular, pay attention to the section on types and type conversions.

huangapple
  • 本文由 发表于 2021年8月19日 01:20:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/68836805.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定