美文网首页
01.类型、变量和常量

01.类型、变量和常量

作者: DamageDurex | 来源:发表于2017-09-23 15:02 被阅读0次

go的基本类型

  • 布尔型 bool
    • 长度 1字节
    • 取值 true false
    • 不能使用数字取代
  • 整型 int/uint
    • 根据运行平台可能为32/64位
  • 8位整型(byte) int8/uint8
    • 长度 1字节
    • 取值范围 -127 ~ 127 / 0~255
  • 16位整型 int16/uint16
    • 长度 2字节
    • 取值范围 -32768 ~ 32768 / 0 ~ 65535
  • 32位整型(rune) int32/uint32
    • 长度 4字节
    • 取值范围 -2^32 ~ 2^32
  • 64位整型 int64/uint 64
    • 取值范围 -2^64 ~ 2^64
  • 浮点型 floot32/floot64
    • 长度 4/8字节
    • 小数位 精确到7/15位
  • 复数类型 complex64/complex128
    • 长度8/64字节
  • 保存指针的32/64位的整数型 uintptr

go的值类型

  • string
  • array
  • struct

go的引用类型

  • slice
  • map
  • chan

go的接口类型

  • interface

go的函数类型

  • func

go基本类型的声明规则

  • 基本方式
    • 声明方式 var <name> <type>
    • 声明范围: 全局 代码块
  • 简写方式
    • 声明方式 var <name> = <value>
    • 声明范围: 全局 代码块
    • 注意事项: 需要给定初始值
  • 类型推导
    • 声明方式 <name>:=<value>
    • 声明范围: 代码块

作用域

  • 全局变量作用域:函数内部可修改,会影响其他函数,所有代码块都可以使用
  • 局部变量作用域:只在函数内部使用,也可用于闭包函数

全局变量的声明、赋值和使用

package main

import "fmt"

var i int

func main() {
  i = 10
  fmt.Println(i)
}

全局变量会被修改

package main

import "fmt"

var i int

func main() {
  i = 10
  var f func() = test
  f()
  fmt.Println(i)
}

func test() {
    i = 100
    fmt.Println(i)
}
输出 100 100

使用其他声明方式声明变量

package main

import "fmt"

var n = 10
func main() {
  fn:=test
  fn()
  var b = false
  fmt.Println(n,b)
}

func test() {
    var i = 100
    fmt.Println(i)
}
输出 100 10 false

常量

常量定义

const <name> <type> = <value>
或者 省略类型
const <name> = <value>

package main

import "fmt"

const PI float64 = 3.1415926
func main() {
    // 声明多个
    const N,S = 1,"str"
    fmt.Println(PI,N,S)
    test()
    // 代码块内声明
    {
        const SIZE_T = 1
        fmt.Println(SIZE_T)
    }
}

// 函数内部声明
func test() {
    // 简写方式
    const BUF_SIZE = 1024
    fmt.Println(BUF_SIZE)
}
输出 3.1415926 1 str 1024 1

常量组

声明方式

const (
  <name> <type> = <value>
  ...
)
package main

import "fmt"

func main()  {
    const (
        a int = 10
        b   // 不提供类型和初始化值,那么视为和上一常量相同
        c = 20
        d
    )
    fmt.Println(a,b,c,d)
}
输出 10 10 20 20

iota

在常量组中, iota 每次自增 初始值为0

package main

import "fmt"

func main()  {
    // 枚举
    const (
        Sunday = iota // 0
        Monday // 1
        Tuesday // 2
        Wednesday // 3
        Thursday // 4
        Friday // 5
        Saturday //6
    )
    fmt.Println(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday)
    // iota 每次自增 初始值为0
    const (
        _ = iota
        KB int64 = 1 << (10 * iota)
        MB          // iota = 2
        GB
        TB
    )
    fmt.Println(KB,MB,GB,TB)
}
输出 0 1 2 3 4 5 6
1024 1048576 1073741824 1099511627776

类型转换

  • go语言不支持隐式转换 (从低位转向高位也不行)
例如
var i int = 1
i = 1.2 // error
  • 支持显式转换 可以从高位转向低位

例如

package main

import "fmt"

func main()  {
    var f float64 = 1.2
    var i byte = byte(f)
    fmt.Println(i)
}

相关文章

  • 01.类型、变量和常量

    go的基本类型 布尔型 bool长度 1字节取值 true false不能使用数字取代 整型 int/uint根...

  • swift基础语法(常量和变量)

    一、常量和变量 1、声明常量和变量 2、类型标注:在声明一个变量或常量的时候提供类型标注,来明确变量或常量能够储存...

  • Kotlin 数据之本变量

    变量和常量用来存储数据和传递数据,类型则用来描述变量和常量保存的是什么样的数据类型。 数据类型 变量和常量都有数据...

  • Swift 语法(一)

    基本类型 变量和常量 使用 var 来声明变量,使用 let 来声明常量,示例代码: PS: 常量或变量的类型必须...

  • Swift4.2基础学习笔记(一)

    参考资料与链接https://www.cnswift.org 常量和变量 声明常量和变量 类型标注 命名常量和变量...

  • Swift4.0 学习小结(一)

    声明常量与变量 用let定义常量用var定义变量 类型标注 冒号 声明所属类型常量和变量的名字几乎可以使用任何字符...

  • swift语法之常量 变量 类型

    常量和变量: 在swift中声明变量或者声明常量的时候可以不用写变量或者常量类型 因为系统会自动推导出对应的类型....

  • Swift5.1 入门(1)

    1. 常量和变量 用 var 定义变量,let 定义常量,系统自动推断出变量或常量类型; 常量(let) 只能赋...

  • php基础语法1

    判断变量是否定义 && 判断变量是否为空 九大超全局预定义变量 常量 系统常量和魔术常量 数据类型 数据类型分类 ...

  • go语言学习笔记——类型

    在介绍类型之前,首先要看下变量和常量,因为类型是修饰他们的,类型决定了变量的长度和存储方式。常量和变量的区别:1、...

网友评论

      本文标题:01.类型、变量和常量

      本文链接:https://www.haomeiwen.com/subject/dejysxtx.html