003.golang 类型与变量

Go基本类型

  • 布尔型:bool
    • 长度:1字节
    • 取值范围:true, false
    • 注意事项:不可以用数字代表true或false
  • 整型:int/uint
    • 根据运行平台可能为32或64位
  • 8位整型:int8/uint8
    • 长度:1字节
    • 取值范围:-128~127/0~255
  • 字节型:byte(uint8别名)
  • 16位整型:int16/uint16
    • 长度:2字节
    • 取值范围:-32768~32767/0~65535
  • 32位整型:int32(rune)/uint32
    • 长度:4字节
    • 取值范围:-2^32/2~2^32/2-1/0~2^32-1
  • 64位整型:int64/uint64
    • 长度:8字节
    • 取值范围:-2^64/2~2^64/2-1/0~2^64-1
  • 浮点型:float32/float64
    • 长度:4/8字节
    • 小数位:精确到7/15小数位
  • 复数:complex64/complex128
    • 长度:8/16字节
  • 足够保存指针的 32 位或 64 位整数型:uintptr
  • 其它值类型:
    • array、struct、string
  • 引用类型:
    • slice、map、chan
  • 接口类型:inteface
  • 函数类型:func

类型零值

零值并不等于空值,而是当变量被声明为某种类型后的默认值, 通常情况下值类型的默认值为0,bool为false,string为空字符串


类型别名

package main

import "fmt"

type (
    iii int
    sss string
)

var intNum iii = 4
var sssNum sss = "abc"

func main() {

    fmt.Println(intNum, sssNum)
}

单个变量的声明与赋值

  • 变量的声明格式:var <变量名称> <变量类型>
var intNum int
  • 变量的赋值格式:<变量名称> = <表达式>
intNum = 4
  • 声明的同时赋值:var <变量名称> [变量类型] = <表达式>
var intNum int = 4

多个变量的声明与赋值

全局变量的声明可使用 var() 的方式进行简写 全局变量的声明不可以省略 var,但可使用并行方式 所有变量都可以使用类型推断 局部变量不可以使用 var() 的方式简写,只能使用并行方式

package main

import "fmt"

var (
    a           = "a"
    b, c        = "b", "c"
    f, g    int = 1, 2
    h, i, j string
)

var d, e string = "d", "e"

var aaa int
//全局变量不可以在外部先声明再赋值
//aaa=4

func main() {
    h, i, j := "h", "i", "j"
    fmt.Println(a, b, c, d, e, f, g, h, i, j, aaa)
    aaa = 3
    fmt.Println(aaa)
}

变量的类型转换

  • Go中不存在隐式转换,所有类型转换必须显式声明
  • 转换只能发生在两种相互兼容的类型之间
  • 类型转换的格式:
<ValueA> [:]= <TypeOfValueA>(<ValueB>)
    var a float64 = 1.234
    b:=int(a)
    fmt.Println(b) //print 1

    var c bool = true
    d:=int(c) //error : cannot convert c (type bool) to type int
    fmt.Println(d) 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据钻研

总结一些前端的知识点 (一)

一、W3C 标准盒模型和 IE 盒模型区别: 1. W3C 标准盒模型: ? 盒子的高宽是由盒子的内容区仅由 width, height 决定的,不包含边框,内...

36070
来自专栏Golang语言社区

Go语言interface详解

interface Go语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计...

37990
来自专栏ShaoYL

预处理指令--宏定义

37570
来自专栏HTML5学堂

获取对象具体类型的功能函数

HTML5学堂:JavaScript当中,时常会使用到typeof来进行数据类型的检测,但是我们觉得typeof不能够满足我们的需求,对于数组、函数、时间对象等...

33370
来自专栏谈补锅

JS面向对象笔记二

注意点:当构造函数里面有return关键字时,如果返回的是非对象,new命令会忽略返回的信息,最后返回时构造之后的this对象;   如果return返回的是与...

34270
来自专栏行者常至

004.golang 常量与运算符

Go虽然保留了指针,但与其它编程语言不同的是,在Go当中不 支持指针运算以及”->”运算符,而直接采用”.”选择符来操作指针 目标对象的成员

11710
来自专栏Python研发

JavaScript

JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应的代码,浏览器可以解释...

16520
来自专栏柠檬先生

常用正则表达式

一, 1.^\d+$    //匹配非负整数(正整数 + 0) ---^:以数字开头 +:之前紧邻出现的一次或多次 2.[0-9]*[1-9][0-9]*$...

716100
来自专栏轮子工厂

2. C语言 -- printf 的花式操作

(。・∀・)ノ゙嗨!大家好,我是呆博~很开心可以在这里给接着大家分享我的 C 语言学习笔记~因为微信对于代码块的支持并不是很好,所以代码部分以截图形式呈现,如果...

42570
来自专栏Script Boy (CN-SIMO)

Qt Quick编程(1)——QML的核心部分ECMAScript

说道QML,不得不先说一下ECMAScript: ECMAScript语言的标准是由Netscape、Sun、微软、Borland等公司基于JavaScript...

52100

扫码关注云+社区

领取腾讯云代金券