首页 > 其他分享 >golang语法速记

golang语法速记

时间:2022-08-21 22:45:59浏览次数:68  
标签:语法 NewName type 别名 速记 golang 类型 Type Teacher

Golang语言中存在一个关键字type,type又有两种使用方式,一种是类型别名,一种是类型定义。

GoLang1.9后对內建定义类型使用了新的写法:

type NewName = Type

这个NewName只是Type的别名。NewName和Type是一致的类型。

而类型定义,则是会产生新的类型。虽然新类型和旧类型是一样的类型。但会被认为是不同的类型名字。

type NewName Type

type Student struct {
name String
age int
}

type Teacher Student

相当于定义了一个新的Teacher类型,和下面的代码是等价的。虽然两个类型内存布局完全一样,但是从概念上来说,他们是完全不同的两个类型,不能相互兼容。
type Teacher struct {
name String
age int
}

类型别名这个功能非常有用,鉴于go中有些类型写起来非常繁琐,比如json相关的操作中,经常用到map[string]interface {}这种类型,写起来是不是很繁琐,没关系,给它起个简单的别名!这样用起来爽多了。
type strMap2Any = map[string]interface {}

标签:语法,NewName,type,别名,速记,golang,类型,Type,Teacher
From: https://www.cnblogs.com/youxin/p/16611243.html

相关文章

  • Golang基础入门
    基础入门1、输出输出,在运行代码时将内容在终端输出。packagemainimport"fmt"funcmain(){fmt.Println("helloword!")}在Go中提供了多种输出的方式......
  • 【Markdown编辑器】语法规则
    一、Markdown介绍及工具推荐1.介绍Markdown是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTML格式发布。Markdown也可以理解为将以MAR......
  • Vue生命周期及基本语法(一)
    一、初体验<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewpor......
  • Golang的IDE的安装
    Golang的IDE的安装Goland是一款由JetBrains公司开发的软件,使用他可以大大提高程序员开发Go代码的效率,因为Goland内部提供了编辑器、调试器和图形用户界面等很多方便的功......
  • golang反射reflect
    1reflect包reflect包实现了运行时反射,允许程序操作任意类型的对象。典型用法是用静态类型interface{}保存一个值,通过调用TypeOf获取其动态类型信息,该函数返回一个Type类......
  • 10--DSL查询文档-查询分类和基本语法
    elasticsearch的查询依然是基于JSON风格的DSL来实现的。 DSL查询分类Elasticsearch提供了基于JSON的DSL(DomainSpecificLanguage)来定义查询。常见的查询类型包括:(1)......
  • golang 值类型与引用类型
    转自:https://www.zhihu.com/search?type=content&q=golang%20%20%E5%80%BC%E7%B1%BB%E5%9E%8B%E3%80%81%E5%BC%95%E7%94%A8%E7%B1%BB%E5%9E%8B%E3%80%81%E6%8C%87%E9%92%88......
  • Golang学习(二)
    12.单元测试12.1引入在我们工作中有时需要去确认一个函数或者一个模块的结果是否正确,如:  12.2传统的方法解决问题在main函数中调用addUpper函数,看看实际输出结果......
  • JSON概念和语法定义
    JSON概念概念:JavaScriptObjectNotationJavaScript对象表示法Personp=newPerson();p.setName("张三“);p.setAge(23);p.setGender("男");varp={"name":"张三"......
  • Golang中slice操作的一些坑
    packagego_testsimport("bytes""fmt""testing")//0、引用类型funcTestT0(t*testing.T){s1:=[]int{1,2,3}f1:=func(s[]int......