golang 学习笔记 --基本类型
字符串值表示了一个一个字符值的集合,在底层,一个字符串值即一个包含了若干字节的序列,长度为0的序列与一个空字符串对应。字符串的长度即底层字节列中字节的个数。
字符串值是不可变的,对字符串的操作只会返回一个新的字符串,而不会改变原字符串并返回。
只有基本类型及其别名类型才可以作为常量的类型
数组的长度是数组类型的一部分。类型声明中的数组长度不同,即使数组类型的元素类型相同,他们也是不同的类型。
数组:长度不可变
数组零值: 一个不包含任何元素的空数组。
var ipv4 = [...]uint8{192,168,0,1}
切片:长度可变,引用类型,零值的长度与容量都为0
var ips = []string{"192.168.0.1","192.168.0.2"}
ips.append("192.168.0.3")
ips = make([]string,100)
fmt.Println(len(ips)) //100
fmt.Println(cap(ips)) //100
字典:其官方称谓是map,引用类型,零值是nil,零值的长度为0
var ipSwitches = map[string]bool{}
ipSwitches["192.168.0.1"]=true
delete(ipSwitches,"192.168.0.1")
函数与方法
在go中,函数是一等类型,可以将其当做一个值来传递和使用。
函数可以没有参数列表,也可以没有结果列表,但空参数列表必须保留括号,而空结果列表可以不用
eg:
func printTab(){
...//省略
}
参数列表中参数必须有名称,结果列表中结果名称可有可无
如果函数声明的结果是有名称的,则return关键字后面就不用追加任何东西了
eg:
func divide(dividend int,divisor int)(result int,err error){
if divisor == 0{
err = errors.New("division by zero")
return
}
result = dividend/divisor
return
} 接口:定义了一组行为,其中每个行为都由一个方法声明表示。(方法声明只有方法签名而没有方法体)
eg:
type Talk interface{
Hello(userName string)string
Talk(heard string)(saying string, end bool, err error)
} 只要一个数据类型的方法集合中包含了Talk接口声明的所有方法,那么它就是Talk接口的实现类型。 结构体:值类型,其零值不是nil
golang 学习笔记 --基本类型的更多相关文章
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
- golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换
golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...
- golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息
golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放 ...
- golang学习笔记8 beego参数配置 打包linux命令
golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/mvc/contro ...
- golang学习笔记5 用bee工具创建项目 bee工具简介
golang学习笔记5 用bee工具创建项目 bee工具简介 Bee 工具的使用 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/instal ...
- go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE
go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 ...
- golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题
golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题 下面这个程序运行的能num结果是什么? package main import ( "fmt" " ...
- golang学习笔记19 用Golang实现以太坊代币转账
golang学习笔记19 用Golang实现以太坊代币转账 在以太坊区块链中,我们称代币为Token,是以太坊区块链中每个人都可以任意发行的数字资产.并且它必须是遵循erc20标准的,至于erc20标 ...
- golang学习笔记18 用go语言编写移动端sdk和app开发gomobile
golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...
随机推荐
- Jenkins+GitLab+Ansible-playbook的环境安装(yum)
1.安装GitLab 1.1 配置gitlab的yum源 # 参考:https://packages.gitlab.com/gitlab/gitlab-ce/install#bash-rpm curl ...
- yuv420 转换成 bmp
源码如下: // ConsoleApplication1.cpp : Defines the entry point for the console application. #include &qu ...
- Linux shell sed命令使用
Linux处理文本文件的工具: grep 过滤文件内容 sed 编辑文件内容 awk 正则表达式Regex ...
- Linux文件服务管理之Samba
Linux文件服务器的搭建 Samba vsftpd nfs Samba服务 作用:共享目录 ...
- AtCoder - 4496 G - k-DMC
AtCoder - 4496 G - k-DMC 题目 长度为n的字符串,q次查询,问"DMC"(不要求连续)在字符串中出现的次数,其中D和M的距离不超过k. 错误思路 通过遍历字 ...
- tf.gather_nd()
tf.gather_nd( params, indices, name=None, batch_dims=0) TensorFlow链接:https://tensorflow.google.cn/ap ...
- 给某mooc站点准备的FE大纲
https://segmentfault.com/a/1190000000465431 https://blog.csdn.net/mike_chen2stockings/article/detail ...
- matlab-层次分析法
层次分析法(AHP)是把问题条理化.层次化,构造出一个有层次的结构模型的方法. 比如要选择旅游地,有3个选择方案,苏杭.北戴河和桂林.选择过程需要考虑多个因素,比如景色.费用.居住.饮食和旅途. 1. ...
- IDEA中各种图标
前言 在用这个开发工具之前对大量的图标先有所了解,会提高不少效率 首先讲下基本的图标 Java类 Java抽象类 Groovy类 注解类 枚举类 异常类 最终的类 接口 包含有main方法的可 ...
- django -- ORM实现作者增删改查
前戏 前面我们已经实现了出版社的增删改查,书的增删改查,书和出版社的对应关系.现在来写一下作者的增删改查和书的对应关系,那书和作者有什么关系呢?一个作者可以写多本书,一本书可以有多个作者,所以书和作者 ...