
Golang
文章平均质量分 83
go语言程序设计
曾梦想仗剑闯天涯
永远相信美好的事情即将发生!
展开
-
Go语言程序设计(十七)并发编程
Go语言在语言级别支持轻量级线程,叫做Goroutine。Go语言标准库提供的所有系统调用操作(包括同步I/O操作),都会让出处理机给其他Goroutine。这使得轻量级线程的切换管理不依赖于系统的进程和线程,也不依赖于CPU的核心数量。Goroutine是Go语言运行库的功能,不是操作系统提供的功能,Goroutine不是用线程实现的。Goroutine 就是一段代码,一个函数入口,以及在堆上为其分配的一个堆栈。因为节省了频繁创建和销毁线程的开销,所以它相对于进程、线程系统开销非常小,是轻量级的。原创 2023-07-07 10:58:30 · 577 阅读 · 1 评论 -
Go语言程序设计(十六)反射
反射(Reflection)是Go语言获取程序运行时类型信息的方式,程序员可以利用这些类型信息进行一些更加灵活的处理工作。Go语言标准库的reflect 包中提供了Typeof()和Valueof()函数,可以使用这两个函数从interface{}接口对象中获取实际目标对象的类型和值信息。反射可以大大提高程序开发的灵活性,借助于反射可以让静态语言具备更加多样的运行时动态特征。反射还可以让程序具备自省能力,使得interface{}接口对象的灵活性有更大的发挥余地。原创 2023-07-07 10:07:59 · 524 阅读 · 0 评论 -
Go语言程序设计(十五)接口
Interface的定义形式看上去和Struct类似,但是Interface是一个方法的集合,它里面没有其他类型变量,而且Method只用定义原型不用实现。methodName(参数列表)(返回值)methodName(参数列表)(返回值)methodName(参数列表)(返回值)(1)在Go语言中,Interface命名时习惯性以“er”结尾,比如: Printer、Reader、Writer等,即通常以动名词来命名。原创 2023-07-07 09:57:01 · 529 阅读 · 0 评论 -
Go语言程序设计(十四)数据I/O对象及操作
Go语言标准库bufio包,实现了对数据I/O接口的缓冲功能。它封装于接口io.ReadWriter、io.Reader和io.Writer中,并对应创建对象ReadWriter、Reader或Writer,在提供缓冲的同时实现了一些文本基本I/O操作功能。原创 2023-07-07 09:32:58 · 383 阅读 · 0 评论 -
Go语言程序设计(十三)方法
Go语言中的Method类似于一个函数,只是函数名前多了一个绑定类型参数——receiver。func (recv receiver_type) methodName(参数列表)(返回值){Method中的Receiver可以是内置类型、自定义类型、结构体或指针类型。原创 2023-07-07 08:58:59 · 353 阅读 · 0 评论 -
Go语言程序设计(十二)结构体
在Go语言中,可以使用关键字“type”定义新的数据类型,另外还有关键字“struct”。field1 类型field2 类型(1)结构体的命名规则和变量名相同,遵循标识符命名规则。(2)结构体的命名规则还遵循可见性命名规则,即只有首写字母为大写的结构体和属性才能在包外被访问。(3)结构体内的所有属性使用一对“{}”括起来,左大括号“{”必须和关键字struct 放在同一行,右大括号“}”必须单独占一行。1、在定义结构体时,字段的数据类型可以是Go语言支持的任何基本数据类型。原创 2023-07-07 08:32:42 · 188 阅读 · 0 评论 -
Go语言程序设计(十一)函数
函数( Function)是能完成程序预定义功能的代码逻辑单位,一个Go程序至少由一个或多个函数组成。对于可执行的Go程序必须有main()函数,而且只能有一个。一般来说,Go程序在编译时,函数在程序中所处的位置并不影响编译结果。但为了代码的可读性,一.般是从main()函数开始,按函数间的逻辑结构编写代码。编写函数的目的主要是为了将冗长的代码划分成较小的功能模块,另外-一个目的是为了能反复调用程序的某些功能,提高程序代码的复用性。Go函数不支持嵌套,不支持重载,也不支持默认参数。原创 2023-07-07 08:32:02 · 327 阅读 · 0 评论 -
Go语言程序设计(十)选择结构和循环结构
在Go语言中,for语句还可以和range关键字配合,组成forrange语句,forrange语句可以对数组(Array)、切片(Slice)等对象的元素进行遍历。break语句是限定转向语句,它能控制程序流程跳出所在的结构,把程序流程转向所在结构之后。continue语句用于for循环结构中,它的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环体的判定。goto语句和标签配合使用时,标签的后面要加“:”,另外标签是区分大小写的,若不使用会造成编译错误,使用时要注意。原创 2023-07-06 16:20:08 · 304 阅读 · 0 评论 -
Go语言程序设计(九)Strconv包
Go标准库中的Strconv包,提供了字符串与基本数据类型相互转换的一些基本函数。Format系列函数用于将基本数据类型转换为字符串;Parse系列函数用于将字符串转换为基本数据类型;Atoi()和Itoa()则是相关函数的简便封装版本。原创 2023-07-06 15:44:10 · 420 阅读 · 0 评论 -
Go语言程序设计(八)数据输入输出
Go语言提供了多种用于实现数据输入、输出的函数,这些函数在fmt包中实现。原创 2023-07-06 15:35:36 · 1108 阅读 · 0 评论 -
Go语言程序设计(七)内存分配机制
Go具有两种分配内存的机制,分别是使用内置函数new()和make()。它们所做的事不同,所应用到的类型也不同,这可能引起混淆,但规则却很简单。原创 2023-07-06 15:11:36 · 369 阅读 · 0 评论 -
Go语言程序设计(六)字典(映射)
在Go语言中,Map是一种特殊的数据结构,它由一对无序的数据项组成,被称为键值对(Key-value Pair)。其中的一项是键(Key),另外一项是值(Value), Map通过把键映射到值来进行访问,这种方式可以加快数据查找的速度。所以,Map通常也被称作字典(Dictionary)或哈希表(Hash table) ,本文统一称为“字典"。原创 2023-07-06 15:04:06 · 378 阅读 · 0 评论 -
Go语言程序设计(五)切片
在Go语言中,切片(Slice)是数组的一个引用,它会生成一个指向数组的指针,并通过切片长度关联到底层数组部分或者全部元素。切片还提供了一系列对数组的管理功能(append、copy),可以随时动态扩充存储空间,并且可以被随意传递而不会导致所管理的数组元素被重复复制。根据以上特征,切片通常被用来实现变长数组,而且操作灵活。切片的数据结构原型定义如下:unit32 len;unit32 cap;指向被引用的底层数组的指针。切片中元素的个数。切片分配的存储空间。原创 2023-07-06 14:45:05 · 818 阅读 · 0 评论 -
Go语言程序设计(四)数组
数组的维数是指数组的下标个数,一维数组只有一个下标,二维数组有两个下标,多维数组则有多个下标。在给数组元素赋初值时,要将初值依次放在一-对“{}”内,上例的定义和初始化后,a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=6,a[6]=7,a[7]=8,a[8]=9,a[9]=10。该例中数组长度为“...”标识符,即没有指定数组长度,数组长度由初始化列表决定,在“{}”中给定了5个元素的初值,所以数组长度为5。该例中d[2]=4,d[5]=7,其他数组元素被初始化为0。原创 2023-07-06 14:06:27 · 235 阅读 · 0 评论 -
Go语言程序设计(三)数据类型-字符串
Go语言程序设计(三)数据类型-字符串原创 2023-07-06 13:45:09 · 72 阅读 · 0 评论 -
Go语言程序设计(二)常量、变量、布尔类型与运算符
Go语言程序设计之常量、变量、布尔类型与运算符原创 2023-07-06 11:09:51 · 380 阅读 · 0 评论 -
Go语言程序设计(一)Go语言概述及基础
Go语言程序设计第一篇,基础介绍原创 2023-07-06 09:48:35 · 1650 阅读 · 0 评论