文档章节

Go 语言初级教程之六[基本类型]

刘赤龙
 刘赤龙
发布于 2010/06/08 16:01
字数 487
阅读 154
收藏 1

基本类型

像C语言一样,Go提供了一系列的基本类型,常见的布尔,整数和浮点数类型都具备。它有一个Unicode的字符串类型
和数组类型。同时该语言还引入了两 种新的类型:slice 和map。

数组和切片
Go语言当中的数组不是像C语言那样动态的。它们的大小是类型的一部分,在编译时就决定了。数组的索引还是使用
的熟悉的C语法(如 a), 并且与C一样,索引是由0开始的。编译器提供了内建的功能在编译时求得一个数组的长度
(如 len(a))。如果试图超过数组界限写入,会产生一个运行时错误。
Go还提供了切片(slices),作为数组的变形。一个切片(slice)表示一个数组内的连续分段,支持程序员指定底层
存储的明确部分。构建一个切片 的语法与访问一个数组元素类似:
 

  1. /* Construct a slice on ary that starts at s and is len elements long */
     
  2. s1 := ary[s:len]
     
  3. /* Omit the length to create a slice to the end of ary */
     
  4. s2 := ary[s:]
     
  5. /* Slices behave just like arrays */
     
  6. s[0] == ary //=> true
     
  7. // Changing the value in a slice changes it in the array
     
  8. ary = 1
     
  9. s[0] = 42
     
  10. ary == 42 //=> true

该切片所引用的数组分段可以通过将新的切片赋值给同一变量来更改:
 
  1. /* Move the start of the slice forward by one, but do not move the end */
     
  2. s2 = s2[1:]
     
  3. /* Slices can only move forward */
     
  4. s2 = s2[-1:] // this is a compile error


切片的长度可以更改,只要不超出切片的容量。切片s的容量是数组从s[0]到数组尾端的大小,并由内建的cap()函数
返回。一个切片的长度永远不能超出它的容量。
这里有一个展示长度和容量交互的例子:
 

阅读全文>>

本文转载自:http://www.mylogged.com/?post=70

刘赤龙
粉丝 14
博文 142
码字总数 0
作品 0
昌平
架构师
私信 提问
程序人生——为什么高级、初级程序员都重要呢?

每个找工作的程序员都必然会遇到这样的招聘贴:寻找“高级程序员”或“初级/入门级程序员”——也许你并没有真正理解这两者之间的区别。与此同时,许多招聘经理可能也不明白其中的区别,他们...

欧阳海阳
2018/07/18
0
0
高性能 NoSQL 多模型数据库 - ArangoDB

ArangoDB 是一个开源的分布式原生多模型数据库 (Apache 2 license)。 理念 利用一个引擎,一个 query 语法,一项数据库技术,以及多个数据模型,来最大力度满足项目的灵活性,简化技术堆栈,...

匿名
2013/02/06
17.5K
10
Go 语言初级教程之八[并发]

并发 Go的作者选择了消息传递模型来作为推荐的并发编程方法。该语言同样支持共享内存,然后作者自有道理: 不要通过共享内存来通信,相反,通过通信来共享内存。 该语言提供了两个基本的构件...

刘赤龙
2010/06/08
328
0
01、Python 系列之 什么是 python

版权声明:本文为博主原创文章,未经博主允许不得转载。 PS:转载请注明出处 作者:TigerChain 地址:http://www.jianshu.com/p/f7d2d2083862 本文出自TigerChain简书 Python 系列 教程简介 1、...

TigerChain
2017/12/15
0
0
前端工程师的发展方向和就业前景

我从安徽的一个小二本学校毕业快一年了,学的是计算机科学与技术。老实说,在课堂上没有学到什么特别实用性的技术,大部分是基础。然后,大三的时候迫于毕业后的就业压力,自学了java,大部分...

JiangEason
2014/06/07
2.7K
6

没有更多内容

加载失败,请刷新页面

加载更多

关于运维,该怎么决定它的方向,这个似工作又似兴趣的存在

我之前主要从事网络、桌面、机房管理等相关工作,这些工作使我迷惘,这应该是大多数运维人都经历过的过程; 18年国庆,我从国内前三的消费金融公司裸辞,下海创业,就是想要摆脱这样的困境。...

网络小虾米
20分钟前
5
0
Java Timer的用法

Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("11232"); } }, 200000 , 1000); public void schedule(TimerTask task, long delay......

林词
24分钟前
4
0
使用js动态加载外部js文件以及动态创建script脚本

动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该DOM动态添加的脚本。和操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。 动态加载外的外...

Bing309
31分钟前
3
0
从零开始入门 K8s | Kubernetes 网络概念及策略控制

作者 | 阿里巴巴高级技术专家 叶磊 一、Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案,没有什么限制,也没有给出特...

阿里巴巴云原生
35分钟前
3
0
天气获取

本文转载于:专业的前端网站➨天气获取 $.get("http://wthrcdn.etouch.cn/WeatherApi", { citykey: cityCode }, function (d) { //创建文档对象 var parser = new ......

前端老手
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部