字符串值表示了一个一个字符值的集合,在底层,一个字符串值即一个包含了若干字节的序列,长度为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 学习笔记 --基本类型的更多相关文章

  1. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  2. golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换

    golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...

  3. golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息

    golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放 ...

  4. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/mvc/contro ...

  5. golang学习笔记5 用bee工具创建项目 bee工具简介

    golang学习笔记5 用bee工具创建项目 bee工具简介 Bee 工具的使用 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/instal ...

  6. go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE

    go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 ...

  7. golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题

    golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题 下面这个程序运行的能num结果是什么? package main import ( "fmt" " ...

  8. golang学习笔记19 用Golang实现以太坊代币转账

    golang学习笔记19 用Golang实现以太坊代币转账 在以太坊区块链中,我们称代币为Token,是以太坊区块链中每个人都可以任意发行的数字资产.并且它必须是遵循erc20标准的,至于erc20标 ...

  9. golang学习笔记18 用go语言编写移动端sdk和app开发gomobile

    golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...

随机推荐

  1. Python Django Vue 项目创建

    环境安装忽略,可参考前面个篇幅介绍 1.创建项目 打开pycharm 终端,输入如下,创建项目 # 进入pycharm 项目目录下 cd pyWeb django-admin startproject ...

  2. 面向对象(三)--多态、封装、property装饰器

    一.多态与多态性 1.什么是多态 多态指的是同一种类/事物的不同形态 class Animal: def speak(self): pass class People(Animal): def spe ...

  3. Java字符串——String深入

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10840495.html 一:字符串的不可变性 1.可变 与 不可变 辨析 Java中的对象按照创建后,对象的 ...

  4. <h1>~<h6> 标题标签

    <h1>~</h6>标题系列标签 解释:h1到h6 中h1标签最大,h6标签最小,逐一递增. 例如: <h1>标签</h1> <h2>标签& ...

  5. ansible自动化运维02

    ansible清单管理 inventory文件通常用于定义要管理主机的认证信息,例如:ssh登录用户名,密码,以及key相关信息. 举个例子:定义清单组 注意:组名为pro,关键字段children表 ...

  6. Go Programming Language 3

    [Go Programming Language 3] 1.These two statements declare a struct type called and a variable calle ...

  7. PAT 乙级 1032.挖掘机技术哪家强 C++/Java

    题目来源 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即参赛人数.随后 ...

  8. 用session实现的用户登陆,客户端是怎样获取到cookie信息的

    大家都知道cookie是存在客户端,session存在服务器端.那么客户端具体是怎样获取cookie信息的呢? 更好的阅读体验可访问 这里. 实验环境 实验环境:xampp + Thinkphp5 + ...

  9. 从零开始写Hystrix

    1.springboot+自定义注解实现灵活的切面配置 利用aop我们可以实现业务代码与系统级服务例如日志记录.事务及安全相关业务的解耦,使我们的业务代码更加干净整洁. 首先创建一个springboo ...

  10. 【反防盗链】img 标签 访问图片 返回403 forbidden问题

    解决方案,页面头添加 <meta name="referrer" content="no-referrer" /> 隐藏请求体中标注来源referr ...