码迷,mamicode.com
首页 > 编程语言 > 详细

go语言基础(main函数、数据类型)

时间:2020-02-24 09:50:11      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:main函数   依赖   多次   图形   常量   多核   动态   body   使用命令   

go语言基础(main函数、数据类型)

1、Go语言介绍

  • Go语言是云计算时代的c语言
  • c和c++这类语言提供了很快的执行速度,而Rudy和python这类语言则擅长快速开发。Go语言则介于两者之间,不仅提供了高性能的语言,同时也让开发更快速

优势

  1. 部署简单,可直接编译成机器码、不依赖其他库,部署就是扔一个文件上去就完成了
  2. 静态类型语言(c是静态语言、python解释性语言),但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率高
  3. 语言层面支持并发,这是Go最大的特色。可以充分的利用多核,很容易的使用并发
  4. 内置runtime,支持垃圾回收GC,不需要手动释放
  5. 关键字25个,支持:继承、重载、对象等
  6. 丰富的标准库
  7. 跨平台编译
  8. 内嵌c支持

2、 main函数

  1. go语言以包作为管理单位
  2. 每个文件必须先声明包
  3. 程序必须有一个main包(重要),没有程序无法编译
  4. 程序要有一个入口函数main函数,并且有且只有一个,也就是说在liteide直接图形界面编译,一个文件夹只能有一个main函数
  5. 左括号必须和函数同行
  6. "hello world"用fmt.Println打印到屏幕,Println()会自动换行
  7. // 和/* */注释,选中代码,按ctrl+\,注释和取消注释代码的快捷键
  8. 会自动格式化
  9. 语句结尾没有分号
  10. 运行:ctrl+R
  11. import导入的包必须使用,声明的变量也必须使用

3、使用命令行运行文件(在cmd文件的目录下)

  • go build XXX.go:编译生成一个可执行程序(可以解决在一个文件中快捷键只能生成可执行文件.exe的问题)。如go bulid 02_hello.go,go build 01_hello.go运行2次,也会生成2个可执行文件
  • cls:清屏
  • go run XXX.go:不生成程序,直接运行

4、变量、常量、枚举

4.1 输出

  1. Println:一段一段处理,自动加换行符
  2. Printf:格式化输出,把a的内容放在%d的位置

如:

fmt.Println("a = ", a)
fmt.Println("a = ", a, ", b = ", b, " ,c = ", c)
fmt.Printf("a = %d\n", a)
fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)

4.2 声明变量

  1. var a int(申明一个变量)
  2. var a,b int(声明2个变量)
  3. var b int = 10(声明变量,同时初始化赋值)
  4. 自动推导类型,必须初始化,通过初始化的值确定类型(常用),只能一次,赋值可以多次

如:

c := 30 
fmt.Printf("c type is %T\n", c) //%T打印变量所属的类型

多次赋值,以及值的交换
i, j := 10, 20
j, i = j, i

多个变量不同类型的声明(定义)
var (
    a int
    b float64
)
var (
    a int = 1
    b float64 = 1.1
)
var (
    a = 1
    b = 1.1
)

4.3 匿名变量

匿名变量,丢弃数据不处理,匿名变量配合函数返回值使用,才有优势

tmp, _ = i, j
fmt.Println("tmp = ", tmp)

func test() (a, b, c int){
    return 1, 2, 3
}
var c, d, e int
_, d, _ = test()
fmt.Printf("d = %d/n", d)

4.4 常量

  • 变量:程序运行期间,可以改变的量,变量声明需要var
  • 常量:程序运行期间,不可以改变的量,常量声明需要const,常量自动推导不需要冒号

    const a int = 10 fmt.Println("a = ", a)

    const b = 11.2 //自动推导不需要冒号 fmt.Printf("b type is %T\n", b) fmt.Println("b = ", b)

    多个常量的声明 const ( i int = 10 j float64 = 3.14 ) const ( i int = 10 j float64 = 3.14 ) const ( i = 10 j = 3.14 )

4.5 枚举iota

  1. iota常量自动生成器,每个一行,自动累加1
  2. iota给常量赋值使用
  3. iota遇到const,重置为0
  4. 可以只写一个iota
  5. 如果是同一行,值都一样

如:

const (
    a = iota //0
    b = iota //1
    c = iota //2
)

const d = iota //重置为0

const (
    a1 = iota //0
    b1        //1
    c1        //2
)

const (
    i = iota //0
    j1, j2, j3 = iota, iota, iota //1
    k = iota  //2
)

5 数据类型

数据类型的作用:告诉编译器这个数(变量)应该以多大的内存存储

类型名称长度默认值说明
bool 布尔类型 1 false true 或 fasle
byte 字节型 1 0 uint8别名,只能存储英文字符
rune 字符类型 4 0 可以存储英文或汉字字符,存储unicode编码,等价于uint32
int,uint 整型 4或8 0 有符号位和无符号位,32位或者64位
int8,uint8 整型 1 0 -128~127, 0~255
int16,uint16 整型 2 0  
int32,uint32 整型 4 0  
int64,uint64 整型 8 0  
float32 浮点型 4 0.0 小数精确到7位
float64 浮点型 8 0.0 小数精确到15位
complex64 复数类型 8    
complex128 复数类型 16    
uintptr 整型 4或8    
string 字符串      

go语言基础(main函数、数据类型)

标签:main函数   依赖   多次   图形   常量   多核   动态   body   使用命令   

原文地址:https://www.cnblogs.com/Stephanie-boke/p/12355448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!