当前位置: > 投稿>正文

func是什么意思,变频器上的func是什么意思(答应我,这次一定彻底搞懂)

03-02 互联网 未知 投稿

关于【func是什么意思】,变频器上的func是什么意思,今天犇涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

1、答应我,这次一定彻底搞懂 Go 中的类型别名

大家好,我是站长 polarisxu。

有下面 3 行代码:

// 32 位机器1)var x int32 = 32.02)var y int = x3)var z rune = x

它们是否能编译通过?为什么?

如果面试时问这道题,你需要想想面试官想考察你什么。在往下看之前,建议你记下自己的答案。

01 数字字面量

在 Go 语言中,字面量是无类型(untyped)的。无类型是什么意思?无类型意味着可以赋值给类似类型的变量或常量。用上面例子,32.0 是无类型的浮点数字面量,因此它可以赋值给任意数字相关类型变量(或常量)。以下都是合法的:

var a int64 = 32.0var b int = 32.0var c float32 = 32.0var d complex64 = 32.0var e byte = 32.0var f rune = 32.0

所以上题中 1)是正确的。

02 不同类型

在目前 Go 1.16 版本中(实际上只有很早期的版本不是),int 类型在 32 位机器占 4 字节,64 位机器占 8 字节。所以,在 32 位机器上,int32 和 int 的内存占用和内存布局是完全一样的。但 Go 语言不会做隐式类型转换,int 和 int32 是不同的类型,因此上题中 2)编译不通过。

03 类型别名

熟悉 C 语言的小伙伴,看到 Go 中以下定义:

type myint int

会以为 myint 和 int 是一样的,认为 myint 是 int 的别名。而实际上,myint 是和 int 完全不一样的类型,只不过 myint 的底层类型是 int,它们直接可以强制类型转换,却不会隐式转换。关于这点无需多讲,重点要讲的是类型别名。

从 Go1.9 开始引入了类型别名,定义如下:

AliasDecl = identifier, "=", Type .

具体例子:

type intalias = int

myint 是新类型,和 int 不一样;而 intalias 却和 int 一样,它只是 int 的别名:所有使用 intalias 的地方都可以使用 int。

那为什么 Go 中会引入类型别名呢?Russ Cox 的论文 Codebase Refactoring (with help from Go) 介绍了它的背景。总结一下类型别名的用途,主要有两点:

  • 在大规模重构项目代码的时候,尤其是将一个类型从一个包移动到另一个包中的时候,有些代码会使用新包中的类型,有些代码使用旧包中的类型, 最典型的是 context 包。最开始,context 包名是 golang.org/x/net/context,1.7 开始,引入标准库,这样一来,存在两份。Go 1.9 开始采用别名重构了它;
  • 允许一个庞大的包分解成内部的几个小包,但是小包中的类型需要集中暴漏在上层的大包中;

在 Go 中,你可以为任意类型定义别名,比如数组、结构体、指针、函数、接口、Slice、Map、Channel 等,包括为自定义类型定义别名。

type F = func()type I = interface{}...

此外,还可以为其他包中的类型定义别名,比如为标准库类型定义别名:

type MyReader = bufio.Reader

关于类型别名的一些注意事项:

  • 别名和原类型是一样的,因此 switch-type 结构中,不能存在两个 case,一个是原类型,一个是别名;
  • 类型别名不能循环定义,比如以下是不允许的:

type T = struct { next *T1}type T1 = T

  • 因为别名和原类型是一样的,因此共享同样的方法集,不论这个方法是定义在原类型还是别名上;
  • 别名的导出性可以和原类型不一样;
  • 不能为别的包的类型通过定义别名来增加方法。以下行为是不允许的:

type MyReader = bufio.Readerfunc (MyReader) AliasMethod() { fmt.Println("This is alias method")}

编译报错:cannot define new methods on non-local type bufio.Reader

回到开头题目的 3),rune 是什么类型?定义如下:

type rune = int32

很显然,rune 是 int32 的别名,因此题目中 3)也能编译通过。

除了 rune,Go 内置类型中,还有 byte 是 uint8 的别名:

type byte = uint8

需要说明的是,在 Go1.9 之前,rune 和 byte 的别名性质就存在,是编译器负责处理的。只是 Go1.9 之后,别名可以用于其他类型了。

04 总结

一道看似简单的题目,如果你能够分析透彻,把语言的变化都说出来,我相信面试官会给你加分。

今天的题目,你做对了吗?

2、func是什么意思

func是什么意思?

因为函数的英文是function,所以教材中自定义函数的名称一般用f,fun,func。只是一个名称,为了便于记忆而已。

func应该代表的是function这个英文单词,不过它并不是语法关键字,没有任何特殊的含义,只是在有些C语言的练习题程序中会作为自定义函数的命名,但实际编程时不推荐这样命名,这样的命名可读性太差(因为它不能够说明函数是干什么的),而且还容易造成命名冲突。

function英 ['fʌŋkʃn] 美 ['fʌŋkʃn] n. 职务;功能;函数;重大聚会;应变量,有相关关系者;取决于vi. 运行;起作用例句:However, many system features and tasks will not function correctly.但是,许多系统功能和任务将无法正常运行。

func在c语言中什么意思

func应该代表的是function这个英文单词,不过它并不是语法关键字,没有任何特殊的含义,只是在有些C语言的练习题程序中会作为自定义函数的命名,但实际编程时不推荐这样命名,这样的命名可读性太差(因为它不能够说明函数是干什么的),而且还容易造成命名冲突。

func函数是干什么的?

Func函数是包含在Function和End Function语句之间的一组VBscript语句。Func函数与Sub过程类似。

但Func函数可以有返回值。

可以使用参数。如果Func函数没有任何参数,则Function语句必须要包含空括号。Func函数通过函数名返回一个值。返回值的数据类型是Variant。

语法: Function 函数名 (参数1,参数2,...)...End Functionfunc在go语言中的使用:在 Go 语言中,函数声明通用语法如下:func functionname(parametername type) returntype {     // 函数体(具体实现的功能)}函数的声明以关键词 func 开始,后面紧跟自定义的函数名 functionname (函数名)。函数的参数列表定义在 ( 和 ) 之间,返回值的类型则定义在之后的 returntype (返回值类型)处。声明一个参数的语法采用 参数名 参数类型 的方式,任意多个参数采用类似 (parameter1 type, parameter2 type) 即(参数1 参数1的类型,参数2 参数2的类型)的形式指定。

之后包含在 { 和 } 之间的代码,就是函数体。

本文关键词:变频器上的func是什么意思,func是什么意思c语言,万用表上func是什么意思,英文func是什么意思,壁挂炉func是什么意思。这就是关于《func是什么意思,变频器上的func是什么意思(答应我,这次一定彻底搞懂)》的所有内容,希望对您能有所帮助!更多的知识请继续关注《犇涌向乾》百科知识网站:http://www.029ztxx.com!

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。

猜你喜欢