zoukankan      html  css  js  c++  java
  • Go语言学习--常量和变量

    1. 常量

    • 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
    • 定义格式: const identifier [type] = value, [type]可以省略,编译器会根据变量的值推断其类型
    • 定义类型
      • 显式类型定义: const a string = "bac"
      • 隐式类型定义:const b = "abc"
    • 常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过
    • a = "hello" unsafe.Sizeof(a): 字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节,所以字符串类型大小为 16 个字节。

    2. 变量

    • 变量初始化时忽略变量的类型,系统会自动推断,所以我们可以去掉var关键字,简化为a:=69,但是需要注意的是,这种声明方式只能用在函数体内,不可以用于全局变量的声明和赋值;
    • a := 30,不能用于对已经存在的变量进行赋值
    • 局部变量一旦声明必须使用,否则会报编译错误
    • 变量定义前使用,也会报编译错误
    • a, b, c := 5, 7, "abc" : 并行或者同时赋值,也可以用于当一个函数返回多个返回值时:val ,err = Func1(parameter)
    • 交换两个变量的值:a, b = b, a 两个变量必须是相同的类型
    • 空白标识符"_"用于抛弃值,例如:在_,b = 5,7中5被抛弃;实际上"_"是一个只写变量,不能获取其值;这么做的是因为go语言中你必须使用所有被声明的变量,但是有时你并不需要使用从一个函数得到的返回值,例如:ret1,_ = Func2(parameter),第二个返回值我们用不到就不用对其进行声明并赋值了
     

     

    有罪是符合人性的,但长期坚持不改就是魔鬼。
  • 相关阅读:
    linux之使用samba实现文件共享
    高级C/C++编译技术之读书笔记(三)之动态库设计
    Java之序列流SequenceInputStream
    Java文件清单列表
    Java之Property-统获取一个应用程序运行的次数
    Java持久化存储对象Properties的方法list、store、load
    Java深度遍历文件夹(递归实现)
    Java流操作之转换流
    Java之字节输入流和输出流
    Java自定义缓冲区MyBufferedReader
  • 原文地址:https://www.cnblogs.com/yu-yuan/p/9585041.html
Copyright © 2011-2022 走看看