函数

  1. os.Exit(int)
os.Args

fmt.Println(os.Args)

go run helloworld.go LH

#标准模式

package main

import (
    "fmt"
    "os"
)

func main() {
    if len(os.Args) > 1 {
        fmt.Println("hello world", os.Args[1])
    }
}

变量常量

测试函数方法编写

image.png

//文件名
fib_test.go

//函数命名
func TestFibList(t *testing.T) {}

//示例代码
unc TestFibList(t *testing.T) {
    ///* var a int = 1
    //    var b int = 1*/

    //var (
    //    a int = 1
    //    b     = 2
    //)

    a := 1
    b := 1
    t.Log(a)
    for i := 0; i < 5; i++ {
        t.Log("", b)
        tmp := a
        a = b
        b = tmp + a
    }

}

常量关键字

  • 常量是与变量相对于的一个概念,他们都是对应一块内存,只是变量可以被修改,常量一旦定义就不能被修改。
  • 常量在编译时就创建,只能定义bool,字符串和数字型(包括整型,字符,浮点型,复数)
  • 常量的算数、逻辑、比较运算的结果也是常量
  • len、cap、real、image、complex、unsafe.Sizeof的调用返回是常量。 ```go //关键字 const

//例 const b int = 2

//同时声明多个常量 const(
c = 1.0 d = “str” ) //同时申明多个常量时,未赋值的常量会复用前一个常量的值 const( e = 1 f g = 2 h )

<a name="N0YCX"></a>
## 变量关键字

- 变量是一个抽象概念,它有内存地址,数据类型和值组成:
- 内存地址:给出了变量在内存中存储的其实地址,一般占用4或8字节(32位、64位机器)。
- 数据类型:定义了变量占用内存的大小。
- 值:表示内存地址中存放的内容。
```go
//关键字
var
  • 1、标准格式
    go语言变量类型是后置的

    var 变量名 类型
    var a int
    
  • 2、缺省类型方式
    go语言根据初始化值自动推导类型,这种方式必须显式初始化。

    var b = 1
    
  • 3、批量定义 ```go var( c int = 10 d float32 e []byte )


- **4、简短格式**<br />这种方式**只能用在函数内部**,必须显式初始化,在局部变量定义中比较常用。  \
```go
f := 1.0
f1,f2,f3 := 1, 1.0, "aaa"

数据类型

数据类型

image.png

类型转换

  • 与其他主要编程语言的差异
  • Go语言不允许隐式类型转换
  • 别名和原有类型也不能进行隐式类型转换 ```go type // 别名关键字

type username 类型 //语法

//类型转换必须使用显示类型转换

package type_test

import “testing”

type MyInt int64

func TestImplicit(t *testing.T) { var a int32 = 1 var b int64 b = int64(a) var c MyInt c = MyInt(b) t.Log(a, b, c) } ```

类型的预定义值

image.png

指针类型

image.png