关于 var 与 type 关键字使用的疑问

  • 看了很多代码,现在搞得有点概念混淆了;也再群里提问其中的原因,有的说是 type 是取别名,但是 var 这种定义变量的方式也应该是取别名的意思吧,所以求指点迷津。

    Code:

    一、这两种有什么区别
    // var
    var DB *gorm.DB
    // type
    type DB *gorm.DB
    二、这两种表达的是一样的意思吗
    type NewInt int
    type IntAlias = int
giao哥
最佳答案

一个是定义变量 一个是定义类型

1年前 评论
讨论数量: 8

二里面的第一个用的话,断言只能用它断言,第二个可以用int断言

1年前 评论

var 定义变量,会分配内存空间 struct 定义类型,不会分配内存空间

1年前 评论
Scrooge (楼主) 1年前

var是定义变量,type是定义变量类型,这能一样吗?

1年前 评论
  1. type是定义类型,var 是定义变量,通过type定义DB是一种类型 如 string int 等。通过var 定义 DB是变量,可以被赋值可以分配内存空间。
  2. 前者是定义一个实际存在的自定义类型 ,后者才是你说的取别名,如一楼说的 NewInt 在断言是只能用它,不能用int 它是一个单独的类型,IntAlias在断言时 可以用int ,因为这种类型只存在于代码层面,编译器层面它还是 int。
1年前 评论
Scrooge (楼主) 1年前
don178 (作者) 1年前
giao哥

一个是定义变量 一个是定义类型

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!