分享
  1. 首页
  2. 文章

golang预定义类型

13641329565 · · 1106 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

表格内类型都是"预定义类型"也叫"简单类型"。 | 类型名称 | 类型 |说明| | -------- | -------- |-------- | | 布尔 | bool | | | 字符串 | string | | | 整型 | int,int8,int16,int32,int64<br>uint,uint8,uint16,uint32,uint64<br>uintptr| | | 浮点 | float32<br>float64 | | | 复数 | complex64 <br> complex128 | | | 字符 | byte (int别名) <br> rune (int32别名) | | | 接口 | error | 你没看错<br>golang中error类型是预定义类型 | ```go // /usr/local/go/src/builtin/builtin.go // 源码中error是用type定义的,为什么是预定义类型,而不是自定义类型?见下方解释。 type error interface { Error() string } ``` ```go package main import ( "errors" "fmt" ) // 一个自定义类型 type xiaoyiError error func main() { var xyErr xiaoyiError err := errors.New("xy err") xyErr = err fmt.Println(xyErr) // 先了解多个赋值规则中的一个: // 如果两个变量具有相同的底层类型,且二者至少有一个是未命名类型,即可赋值。 // 解: // 可知:xyErr的类型是xiaoyiError,并且xiaoyiError是自定义类型。 // 可知:errors.New("xy err") 返回的是error类型。 // error 与 xiaoyiError 是不同的类型。 // 如果想将error赋值给xiaoyiError,需保证至少有一个是未命名类型,且底层类型相同。 // 如果error类型算作自定义类型,就不可能赋值成功。因为二者都是自定义类型,不符合至少有一个未命名类型的规则。 // 而上段代码可以赋值成功。 // 所以error是预声明类型,且xiaoyiError的底层类型与error底层类型都是error。 } ```

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

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

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏