版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,2020/8/1,云南怡乐网络科技发展有限公司,智辉实现了梦想,激情和创新的责任,2,2,引进了Golang语言,Go编程语言是一个开源项目,使程序员更有效率。围棋具有表现力、简洁、清晰和高效的特点。它的并行机制使得编写多核和网络应用变得容易,而新型系统允许构建性模块化程序。Go非常快速地编译成机器代码,具有方便的垃圾收集和强大的运行时反射。这是一种快速、静态类型的编译语言,但它感觉像一种动态类型和解释语言。官方网站:Go的前身/,3,2020/8/1,Golang,的背景和特点来自地狱(基于贝尔实验室改造计划9)。地狱包含一种叫做地狱的语言。这里引用了Li
2、mbo论文的一个描述:Limbo是一种用于开发运行在小型计算机上的分布式应用程序的编程语言。它支持模块化编程、编译时和运行时的强类型检查、基于进程内类型的通道通信、原子垃圾收集和简单的抽象数据类型。它旨在即使在没有硬件和内存保护的小型设备上也能安全运行。命令语言,非功能语言;编译语言,非分析语言;强类型语言,而不是弱类型语言;带有垃圾收集的多核并发语言;支持c语言库的直接集成和编译;自然的综合沟通渠道;自然整合和并行执行程序;支持面向对象编程和多根“继承”;支持反射、快速编译和快速执行;跨平台语言,操作系统,linux,视窗;完全开源,免费使用;4,2020/8/1,Golang数据类型,go
3、有一个众所周知的类型,如int,它根据您的硬件决定适当的长度。这意味着在32位硬件上,它是32位;它在64位硬件上是64位的。注意:int是32或64位之一,不会被定义为其他值。Uint是相同的。如果要指定其长度,可以使用int32或uint32。整数类型(有符号和无符号)的完整列表是int8、int16、int32、int64和byte、uint8、uint16、uint32和uint64。字节是uint8的别名。浮点类型的值是float32和float64(没有浮点类型)。64位整数和浮点数总是64位的,即使在32位架构中也是如此。切片类似于数组,但是当添加新元素时,它的长度会增加。切片总
4、是指向底部的数组。整数:int8,int16,int32,int64无符号整数:uint8、uint16、uint32、uint64浮点类型:float32,float64字符串类型:字符串。数组类型:string,int/可以在不创建切片类型的情况下使用:make(int,10)映射类型:make(mapstringstring)bool;ean类型:bool本质上集成的复杂算术支持;支持指针,但不支持指针操作;您可以从上述类型派生出自己的类型;5,2020/8/1,变量定义和使用,不带分号“;”在表达式的末尾;支持显示变量定义,即变量定义与使用分开;支持定义的直接使用和变量定义与使用的结合
5、;支持复合使用多个赋值表达式;支持多元回归,丢弃一些回归变量;运算符支持:*/% x0 return y | return y else | else return x | return x |-fun I :=0 Here :此行的第一个单词以分号结尾,作为标签println(i) i Goto Here跳转,7,2020/8/1,程序控制结构(II),有三种形式的go for循环,其中只有一种使用分号。支持中断、继续、转到、返回;在循环中;用于初始化;条件;对于条件和而言,Post与c相同,而对于(,则与c相同;)(无限循环)(其中break支持多层嵌套循环直接返回),对于I :=1;i1
6、0如果条件返回列表:=stringa,b,c,d,我/做你想做的事情表达式不必是常数或整数,该过程从上到下执行,直到找到匹配,如果开关没有表达式,它将匹配为真。这使得有可能使用开关来写一个if-else-if-else判断序列。切换i case 0: /空case body case 1: func1() /当i=0时,将不调用f!Default: func2() /默认分支开关情况0=c x!=nil b=true ()/do某物return,14,2020/8/1,源代码包,它是函数和数据的集合。使用包保留字定义包。文件名不需要与包名匹配。软件包名称的惯例是使用小写字符。Go包可以由多个文
7、件组成,但使用同一包行。在Go中,当函数的第一个字母大写时,函数将从包中导出(在包外可见,或者是公共的),因此偶数是公共的,奇数是私有的。包偶-开始自定义包导入()-导入所需的包函数偶(I int)bool-可导出函数返回I % 2=0 func odd(I int)bool-私有函数返回I% 2=1,15,2020/8/1,内存分配,Go支持垃圾收集,Go还有两个内存分配原语,新的和make。它们适用于不同的类型,做不同的工作,这可能会令人困惑,但规则很简单。下一节展示了如何在Go中处理内存分配,并希望新的和更清晰的区别。New(T)分配填充有零值的T类型的内存空间,并返回其地址,一个* T
8、类型的值。在Go术语中,它将指向新分配的T类型零值的指针返回到内存分配。内置函数使(T,args)和新(T)具有不同的功能。它只能创建切片、贴图和通道,并返回带有初始值(非零)的T类型,而不是*T.键入SyncedBuffer结构锁同步。互斥缓冲区字节。缓冲区p :=新(同步缓冲区)-在实现后,p已经可以使用如上所述的var vsynchronized缓冲区切片-var p * int=新。Var v int=make(int,100)-v指向新分配的包含100个整数的数组。var p * int=new(int)-不必要的复杂示例* p=make (int,100,100) v:=make
9、(int,100)-更常见的注释:make仅适用于地图、切片和通道,它不返回指针;16,2020/8/1,Golang interface,在go中,保留字interface被赋予许多不同的含义。每种类型都有一个接口,这意味着为该类型定义了一组方法。这段代码用一个字段和两个方法定义了一个结构类型。事实上,不知道一个类型是否实现了一个接口意味着Go实现了一个叫做ducktyping的模式。这不是纯粹的鸭子类型,因为如果可能的话,Go编译器将静态地检查该类型是否实现了接口。然而,Go确实有纯粹的动态方面,例如将一种接口类型转换为另一种接口类型。通常,转换在运行时被检查。如果是非法转换,当现有接口值
10、中存储的类型值不匹配时,要转换到的接口程序将引发运行时错误。围棋中的接口与许多其他编程语言有着相似的想法:纯抽象的C语言虚拟基类,哈斯克尔语言的类型类,或者Python语言的鸭子类型。然而,没有其他语言结合了接口值、静态类型检查、运行时动态转换和在没有明确定义类型的情况下修改接口。这些功能带来的结果是强大、灵活、高效和易于编写。类型s结构I int func (p * s) get () int返回p. I func (p * s) put (v int) p. I=v类型I接口get () int put (int)是接口I的合法实现,因为它定义了我需要的两种方法。请注意,这是真的,即使没有
11、明确的定义,s实现I,17,2020/8/1,Golang concurrency (I),本章将显示Go的能力,开发并行程序使用渠道和goroutine。Goroutine是一个普通的函数,但是它需要从保留字go开始。-输出结果-。1秒钟后茶就好了!2秒钟后,如果您没有等待goroutine的执行(例如,删除时间。睡眠线),程序将立即终止,任何正在执行的程序都将停止。为了解决这个问题,我们需要一些机制来与goroutine通信。准备好了(“茶”,2)-普通函数调用准备好了(茶,2)-运行为goroutine。秒)时间。睡眠(时间。持续时间(秒)*时间。第二)fmt。准备好了!)func ma
12、in()go ready(茶,2)go ready(咖啡,1) fmt。打印等待时间。睡眠(5 *时间。第二),2020年8月18日,戈朗并发,前面的问题是以渠道的形式使用的。通道可以与Unix sehll中的双向管道相比较:它可以发送或接收值。这些值只能是特定类型:通道类型。定义通道时,还需要定义发送到通道的值的类型。请注意,必须使用ma 0将c定义为int类型的通道。也就是说,这个通道传输整数。注意,这个变量是全局的,所以goroutine可以访问它;1将整数1发送到channelc;2初始化C;3启动一个goroutine用保留字go;4等待直到从信道接收到一个值,并注意接收到的值被丢弃;5两个goroutines,接收两个值。柯创造了一个渠道;ci :=make(chan int)cs :=make(chan string)cf :=make(chan interface)Ci-1-将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中七年级道德与法治教学设计:第1.2课男生女生的青春对话与性别共生
- 2026国家电网招聘考试(其他专业)历年参考题库含答案详解
- 初中八年级地理西北地区自然特征与农业教学设计
- 2026年(完整版)“安全生产月”安全生产知识竞赛试题库(附答案)
- 高中地理初高衔接专题《气候与植被的相互作用》教学设计
- 2026年4月自学考试15044《马克思主义基本原理》真题及参考答案
- 2026年3月副主任医师考试消化内科上消化道出血练习题及答案
- 2026年cpa注册会计师真题卷附答案
- 初中八年级数学下册同分母分式的加减法教学设计
- 2026年保险学基础试题(附答案)
- 甲氨蝶呤治疗类风湿讲课件
- T/CECS 10015-2019自粘丁基橡胶钢板止水带
- 2025年环境工程专业能力测试试题及答案
- 2025版治安巡逻队员聘用合同6篇
- 《骨质疏松指南》课件
- 六年级上册鲁科版综合实践二、《绿色出行》课件
- 【MOOC】一生的健康锻炼-西南交通大学 中国大学慕课MOOC答案
- 血透中医护理
- 小学语文整本书阅读《没头脑和不高兴》导读课件
- 烽火岁月中的木刻 课件 2024-2025学年浙人美版(2024)初中美术七年级上册
- VMware虚拟化平台巡检手册
评论
0/150
提交评论