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

基本类型

像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()函数
返回。一个切片的长度永远不能超出它的容量。
这里有一个展示长度和容量交互的例子:
 

阅读全文>>

点赞
收藏

评论区

加载中...

相关推荐

一篇文章彻底弄懂理解和高效运用切片(slice)

slice,中文多译为“切片”,是Go语言在数组之上提供的一个重要的抽象数据类型。在Go语言中,绝大多数需要使用数组的场合,切片都实现了完美替代。并且和数组相比,切片提供了更通用、功能更强大且便捷的数据序列访问接口。1.切片究竟是什么在对切片一探究竟之前,我们先来简略了解一下Go语言中的数组。Go语言数组是一个固定长度的、容纳同构类型元素的

2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python

学习一门语言应该是一件充满乐趣的事情,为什么要把它变难呢?二、Python基本数据类型与输入、输出函数2.1基本数据类型对于任何一门语言都存在一些基本类型,Python也不例外,只不过数据类型在Python中要远远比其他语言简单,基本分为以下几种。1.数值数据类型,常见的是整数和浮点数2.布尔值数据类型,就是常说的真和假

go语言中,数组与切片的区别?

切片是Go语言核心的数据结构,然而刚接触Go的程序员经常在切片的工作方式和行为表现上被绊倒。比如,明明说切片是引用类型但在函数内对其做的更改有时候却保留不下来,有时候却可以。究其原因是因为我们很多人用其他语言的思维来尝试猜测Go语言中切片的行为,切片这个内置类型在Go语言底层有其单独的类型定义,而不是我们通常理解的其他语言中数组的概念。文章

Flutter开发必备Dart基础:Dart快速入门

<h1概述</h1<pDart从2.0开始变为强类型语言,静态类型。这点和Java、C等比较相似。也就是说在编译时就已经知道变量的类型那么就是静态类型语言。开发人员在开发的时候需要指定变量的类型。这有什么优点呢?就是所有类型检查都可以通过编译器来完成。可以提前预报一些琐碎的错误。<br同时Dart还是面向对象的编程语言。像python、Java、Kol

Go语言中new()和make()的区别

1.Go语言中的值类型和引用类型值类型:int,float,bool,string,struct和数组(数组要特别注意,别搞混了)变量直接存储值,分配栈区的内存空间,这些变量所占据的空间在函数被调用完后会自动释放。引用类型:slice,map,chan和值类型对应的指针变量存储的是一个地址(或者理解为指针),指针指向内存中真

Java中的基本数据类型和引用数据类型的区别

一、前言众所周知Java是一种强类型语言,在Java语言中,Java的数据类型一共分为两大类,分别为基本数据类型和引用数据类型,其中基本数据类型细分小类可分为整数类型、浮点类型、字符类型、布尔类型这四小类。二、基本数据类型和引用数据类型1\.基本数据类型只有

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