-
2021-04-15 15:57:55
自定义类型
在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型。
自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义。例如:
//将MyInt定义为int类型 type MyInt int
通过type关键字的定义,MyInt就是一种新的类型,它具有int的特性。
类型别名
类型别名是Go1.9版本添加的新功能。
类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。
定义形式如下:type TypeAlias = Type
内置类型别名:
type byte = uint8 type rune = int32
区别
实际类型不同
类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别。
//类型定义 type MyInt int //类型别名 type IntAlias = int func main() { var i MyInt = 0 var j IntAlias = 0 fmt.Printf("i MyInt %T %v\n", i, i) // 输出结果: i MyInt main.MyInt 0 fmt.Printf("j IntAlias %T %v\n", j, j) // 输出结果: j IntAlias int 0 }
结果显示a的类型是main.NewInt,表示main包下定义的NewInt类型。b的类型是int。MyInt类型(别名)只会在代码中存在,编译完成时并不会有MyInt类型。
类型定义是真正存在的类型类型别名可以同相同类型进行计算,自定义类型则不能
var j IntAlias = 0 var myJ int = 3 fmt.Println(j + myJ)
这也说明类型别名和实际的类型是一样的,别名就是为了方便记忆、展示
自定义类型可以为类型添加方法
func (m MyInt) sum(i int) { fmt.Println(int(m) + i) }
这应该是自定义类型的最常用的用途吧,就是给内置类型加新的方法
更多相关内容 -
Android版本及别名
2021-06-02 23:08:128种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?API level 1 :Android 1.0API level 2 :Android 1.1 Petit Four 花式小蛋糕API level 3 :Android 1.5 Cupcake 纸杯蛋糕API level 4...8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
API level 1 :Android 1.0
API level 2 :Android 1.1 Petit Four 花式小蛋糕
API level 3 :Android 1.5 Cupcake 纸杯蛋糕
API level 4 :Android 1.6 Donut 甜甜圈
API level 5 :Android 2.0 Éclair 松饼
API level 6 :Android 2.0.1 Éclair 松饼
API level 7 :Android 2.1 Éclair 松饼
API level 8 :Android 2.2 - 2.2.3 Froyo 冻酸奶
API level 9 :Android 2.3 - 2.3.2 Gingerbread 姜饼
API level 10:Android 2.3.3-2.3.7 Gingerbread 姜饼
—2011年2月—专为平板电脑
API level 11:Android 3.0 Honeycomb 蜂巢
API level 12:Android 3.1 Honeycomb 蜂巢
API level 13:Android 3.2 Honeycomb 蜂巢
—2011年10月—统一手机和平板
API level 14:Android 4.0 - 4.0.2 Ice Cream Sandwich 冰激凌三明治
API level 15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich 冰激凌三明治
API level 16:Android 4.1 Jelly Bean 糖豆 (Choreographer可用)
API level 17:Android 4.2 Jelly Bean 糖豆(WebView [email protected]�解)
API level 18:Android 4.3 Jelly Bean 糖豆 (Systrace可用,但v4包里有TraceCompat)
API level 19:Android 4.4 KitKat 奇巧巧克力棒 (可以使用DevTools调试WebView;可以使用evaluateJavascript()调用js方法)
API level 20:Android 4.4W KitKat with wearable extensions 奇巧巧克力棒
—2014—64,ART,4.1,扁平(RecyclerView),新通知
API level 21:Android 5.0-5.0.2 Lollipop 棒棒糖
API level 22:Android 5.1–5.1.1 Lollipop 棒棒糖
—2015—type-c,指纹,新权限,chrome
API level 23:Android 6.0–6.0.1 Marshmallow 棉花糖
—2016—分屏多任务,全新下拉快捷开关页,新通知(合并、回复),Emoji
API level 24:Android 7.0 Nougat 牛轧糖
API level 25:Android 7.0 Nougat 牛轧糖
—2017—
API level 26:Android 8.0 Oreo 奥利奥
API level 27:Android 8.1 Oreo 奥利奥
—2018—
API level 28:Android 9.0 Pie 派
—2019—
API level 29:Android 10
http://blog.csdn.net/X1876631/article/details/71074771
综上所述,最好的关系是:
minSdkVersion <= targetSdkVersion = compileSdkVersion。
用较低的 minSdkVersion 来覆盖最大的人群,
用最新的 SDK 设置 target 和 compile 来获得最好的外观和行为
注意:Support库的大版本号要与compileSdkVersion的大版本号相同
-
【Go】Go语言 类型别名和自定义类型
2021-12-06 20:44:36go语言中的自定义类型和类型别名是两个声明方式相似却不同的概念。需要细加区分。
一、自定义类型
在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用 type 关键字来定义自定义类型。
自定义类型是 定义了一个全新的类型 。我们可以基于内置的基本类型定义,也可以通过 struct 定义。例如:
//将MyInt定义为int类型 type MyInt int
通过Type关键字的定义,MyInt就是一种新的类型,它具有 int 的特性。
思考:
实际上,Go语言中的结构体类型就是一种自定义类型。
看看结构体的定义格式就知道了:type 结构体类型名 struct { 字段名1 字段类型1 字段名2 字段类型2 … }
是不是和上述自定义类型的格式一模一样呢?
二、类型别名
类型别名是Go1.9版本添加的新功能。
类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。
type TypeAlias = Type
我们之前见过的rune和byte就是类型别名,他们的定义如下:
type byte = uint8 type rune = int32
三、类型定义和类型别名的区别
类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别。
package main import ( "fmt" ) //类型定义 type NewInt int //类型别名 type MyInt = int func main() { var a NewInt var b MyInt fmt.Printf("type of a:%T\n", a) //type of a:main.NewInt fmt.Printf("type of b:%T\n", b) //type of b:int }
输出结果:
type of a:main.NewInt type of b:int
结果显示a的类型是main.NewInt,表示main包下定义的NewInt类型。这是一个新的数据类型。
b的类型是int。MyInt类型别名只会在代码中存在,编译完成时并不会有MyInt类型。
参考链接
-
NLP(四十九)别名发现模型的初次尝试
2021-11-29 22:24:48别名发现系统 项目说明 别名发现在日常生活、知识图谱及搜索推荐中有重要应用。 本项目使用深度学习方法去发现非结构化文本中的别名与简称(或称缩略语),比如下面的例子: 卡定沟:又名嘎定沟,位于西藏318国道...引言
别名即同义词、近义词,是同一事物的不同称呼。在日常生活中,我们也常常用到别名,比如土豆的别名为马铃薯,KFC的别名为肯德基。在上文关于知识图谱上下级概念建设的一点想法中提及了上下级概念的描述及意义,本文将尝试着使用深度学习模型建立同义关系模型。
比如在下面的文本中:卡定沟:又名嘎定沟,位于西藏318国道拉萨至林芝段距八一镇24公里处,海拔2980米,地处雅鲁藏布江支流尼洋河畔
我们可以发现别名为:
(卡定沟, 别名, 嘎定沟)
。本文使用深度学习方法去发现非结构化文本中的别名与简称(或称缩略语),即使用关系抽取模型
作为别名发现的模型。本文的最大价值在于提供高质量的别名、简称的标注语料
,以及笔者对于别名发现模型
的一次尝试。
别名(或同义关系)知识图谱构建中是必不可少的一环,是扩充本体名称的重要手段。别名发现的意义如下:- 是对实体本身更好的理解,比如我们常常听说的
阿里巴巴
,其全名为阿里巴巴网络技术有限公司
,借助别名可以知道这是一家科技公司 - 是构建知识图谱的重要一环,对本体的名称进一步扩充
- 对搜索体验的提升,比如用户搜索
马铃薯
,系统借助同义关系找到其别名:土豆
,则可扩充用户的搜索为马铃薯 土豆
;用户搜索珠峰
,系统借助同义关系找到其全名:珠穆朗玛峰
,则可扩充用户的搜索为珠峰 珠穆朗玛峰
,这无疑能提升用户搜索体验,提升搜索效果。
语料构建
本文最大的贡献在于提供人工标注的高质量别名语料。
我们的语料来自于CCF2019年关系抽取比赛数据
及阅读理解数据WebQA & SougouQA
,借助程序处理(关键词)及人工标注整理,目前共获取有效标注语料共4425条,具体说明如下:文件名称 数据来源 标注样本数量 data/ccf2019_corpus.json CCF2019年关系抽取比赛数据 3369 data/sougouqa_webqa_corpus.json 阅读理解数据(WebQA & SougouQA) 1056 模型训练
本文采用文章用bert4keras做三元组抽取中给出的关系抽取模型进行模型训练,其中训练集数据:测试集数据=8:2。
模型的参数设置为maxlen=200, batch_size=16, epoch=20, 使用预训练模型为哈工大的中文Roberta模型: chinese-RoBERTa-wwm-ext
,在Google Colab平台上进行模型训练, 在测试集上的最好F1值为88.97%。别名发现
模型训练好之后,我们可以使用该模型对其它非结构化文本进行预测,并写入至Neo4j中进行观察。以下将给出几个抽取例子:
杨桃,又名阳桃、羊桃、五棱子,学名“五敛子”,又因横切面如五角星,故国外又称之为“星梨”。 杨桃原产地,传统认为产於东南亚的马来西亚等地。我国於汉朝就有栽培记载,今我国福建、广东、广西、云南等地;亚洲东南亚、印度;美洲巴西等热带地区均普遍栽培。…
预测结果:
[("杨桃", "别名", "阳桃"), ("杨桃", "别名", "羊桃"), ("杨桃", "别名", "五棱子"), ("杨桃", "别名", "五敛子"), ("杨桃", "别名", "星梨")]
英吉利海峡隧道(thechanneltunnel)又称英法海底隧道或欧洲隧道(eurotunnel),是一条把英国英伦三岛连接往欧洲法国的铁路隧道,于1994年5月6日开通。
预测结果:
[("英吉利海峡隧道", "别名", "英法海底隧道"), ("英吉利海峡隧道", "别名", "欧洲隧道")]
中科大是中国科学技术大学的简称,位于安徽省合肥市。
预测结果:
[('中国科学技术大学', '简称', '中科大')]
总结
语料维护费时费力,因此可能会存在一定错误,如有问题,请及时指出。另外,语料并没有很全,后续需持续投入进行维护。
本文给出了一种别名发现模型
的思路,希望后续关于这方面的资料和研究会越来越多,感谢阅读~
本文项目已开源,其Github地址为:https://github.com/percent4/alias_find_system,欢迎大家参考~ - 是对实体本身更好的理解,比如我们常常听说的
-
go语言类型别名
2021-11-06 10:21:48 类型别名是 Go 1.9 版本添加的新功能,主要用于解决代码升级、迁移中存在的类型兼容性问题。在 C/C++ 语言中,代码重构升级可以使用宏快速定义一段新的代码,Go语言中没有选择加入宏,而是解决了重构中最麻烦的... -
GoLang之自定义类型、类型别名
2022-04-26 19:08:54GoLang之自定义类型、类型别名 -
Git学习之别名
2019-12-17 19:52:52配置别名: git config --global alias.st status git config --global alias.unstage reset HEAD -
Go 知识点(05)— 类型别名与类型定义
2021-04-02 18:35:591. 类型别名 类型别名需要在别名和原类型之间加上赋值符号 = ,使用类型别名...也就是说别名类型和源类型表示的是同一个目标,就譬如每个人的学名和乳名一样,都表示同一个人。 定义 string 类型的别名,示例代码: f -
别名
2016-06-09 14:02:00在一个作用域取的别名,到了其他作用域(超出该作用域范围时)就不能用(就像没有一样)。(例如:在家时,家人称呼你的小名。在学校老师称呼你的学名。在寝室室友称呼你的绰号。) 类型和对象就是这么灵活多变,... -
Go类型别名和自定义类型
2021-05-23 07:52:19Go类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string,整型,浮点型,布尔等数据类型,Go语言可以使用type关键字来定义自定义类型 自定义类型是定义了一个全新的类型。我们可以给予内置的... -
go语言学习笔记 — 基础 — 基本语法 — 类型相关(1):类型定义与类型别名
2021-10-26 10:09:04类型别名主要用于go代码升级、迁移中,类型的兼容性问题。这解决了代码重构中最麻烦的类型名变更问题。 1. 类型定义与类型别名 类型定义 写法: type TypeDef Type 栗子: type byte uint8 type rune int32 ... -
go语言学习笔记 — 基本语法 — 变量的类型(3):类型定义与类型别名
2019-11-15 10:23:38类型别名主要用于go代码升级、迁移中,类型的兼容性问题。这解决了代码重构中最麻烦的类型名变更问题。 1. 类型定义与类型别名 类型定义 写法: type TypeDef Type 栗子: type byte uint8 type rune int32 ... -
Go 学习笔记(27)— type 关键字(类型定义、类型别名、类型查询、定义接口、定义结构体)
2020-05-05 22:28:20类型别名规定: TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类型,就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。 2. 类型定义 类型... -
2.16 Go语言type关键字(类型别名)
2020-04-29 11:20:30类型别名是 Go 1.9 版本添加的新功能,主要用于解决代码升级、迁移中存在的类型兼容性问题。在 C/C++ 语言中,代码重构升级可以使用宏快速定义一段新的代码,Go语言中没有选择加入宏,而是解决了重构中最麻烦的类型... -
上海常用花境植物分类总结
2021-01-21 04:10:34草花品种上海地区常用花境植物一览一、花灌木类序号图片名称学名别名科属形态特征花色花期地理分布生态习性栽培管理园林用途1腊梅Chimonanthuspraecox(linn.)Link.&cop -
关于DNS的别名,你真的理解了吗?
2012-09-03 21:21:04人有乳名和学名,,标志识别电脑(的)(地)址也有本名和别名..名字存在(的)意义就是把人与人、物与物区别开来,,同一事物多个名称,,主要用于不同场合,,再者就是身份和(地)位(的)象征..记录(的)别名,,大抵也不外乎这几个目... -
c++学习——类型别名
2014-09-10 16:54:33类型别名 是一个名字,也就是说是一种类型的另一个名字,使用类型别名可以让复杂的类型名字 变得更加简单明了、易于理解和使用。 有两种方法可以用于定义类型别名。 传统的方法是使用关键字: ... -
[置顶] 看到这样的 语句colAlias::Hashtable 你别晕( 命名空间别名限定符)...
2019-09-23 04:11:16今天msdn了一下原来这个东西学名 命名空间别名限定符 当成员可能被同名的其他实体隐藏时,可以使用这种方式。 using colAlias = System.Collections; namespace System { class TestClass { static void... -
2.3 Go语言从入门到精通:数据类型
2021-03-20 22:09:20文章目录1、基本数据类型1.1 布尔型1.2 数值型1.2.1 整型1.2.2 浮点型1.2.3 复数1.3 字符串型2、派生数据类型2.1 指针2.2 数组2.3 结构体2.4 通道...接口(interface)2.8 Map3、其他3.1 数据类型转换3.2 类型别名4、小结... -
【C++】字典树
2019-07-20 22:25:41学名 别名 类型 字典树 单词查找树,Trie树 树形数据结构 基本性质 根节点不包含字符,除根节点外每一个节点都只包含一个字符;2. 从根节点到某一节点,路径上经过的字符连接起来,为该... -
Vue.js(一) Vue.js + element-ui 扫盲
2018-12-09 20:32:59如果与模块寻址相关的需求,找resolve(比如定义别名alias) 如果与转译相关的需求,找loader(比如处理sass处理es678N) 如果与构建流程相关的需求,找plugin(比如我需要在打包完成后,将打包好的文件复制到... -
我的spring学习笔记7-Spring的Bean配置文件给Bean定义别名
2012-04-14 21:59:14本文介绍如何给Spring的Bean配置文件的Bean定义别名?...学名叫做“识别名称” 怎么给 business设置别名呢? 有两种方法: 1、使用独立的alias语法 。如 [code="xml"] [/code] ... -
我与我的智齿
2019-03-03 20:44:14就这几个没用的牙,它竟然还有一个别名,就是「智慧齿」,我就不管它那个「智慧」怎么解释,反正我老是吐槽它:你都长成那样儿了,有个屁的智慧哈哈。 说,这个牙齿啊,在我们很小的时候都已经潜伏在牙床里面了,... -
整合型主板
2021-07-16 06:14:17本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!...中文名整合型主板外文名别名集成型主板别名一体化主板主要平台Intel,AMD主要厂商华硕,华擎整合内容整合型主板基... -
cas7411-49-6|3,3-二氨基联苯胺 四盐酸盐分子式:C12H18Cl4N4
2021-07-02 16:59:18中文别名:3,3'-二氨基联苯氨四盐酸盐|3,3''-二氨基联苯胺四盐酸盐|3,3’-二氨基联苯胺,盐酸盐 沸点:481.7ºC at 760 mmHg 熔点:300°C 分子式:C12H18Cl4N4 分子量:360.110 闪点:282.7ºC 质量:35 -
MySQL中的函数使用
2021-01-19 03:09:22起别名,可以对表,字段起别名,起了别名之后,就只能用别名了,不能再用原表名,原字段名 起别名,关键字as,as可以省略不写 统计每个班级的男女成绩的平均分,北京的人不纳入统计: SELECT a.sex, b.cname, avg(c... -
Go语言基础之结构体
2020-05-04 13:37:12文章目录Go语言基础之结构体类型别名和自定义类型自定义类型类型别名类型定义和类型别名的区别结构体结构体的定义结构体实例化基本实例化匿名结构体创建指针类型结构体取结构体的地址实例化结构体初始化使用键值对... -
kafka集群配置
2020-12-17 16:37:54有以下三个参数: 1.listeners:学名叫监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。 2.advertised.listeners:和 listeners 相比多了个 advertised。Advertised 的含义... -
洒金珊瑚
2019-07-30 13:05:00拉丁学名 Aucuba japonica Thunb. var. variegata Dombr. 别称:洒金珊瑚、黄叶日本桃叶珊瑚 山茱萸科,植物界 生长环境: 适应性强。性喜温暖阴湿环境,不甚耐寒,在林下疏松肥沃的微酸性土或中性壤土生长繁茂...