go语言基础(01) | 青训营笔记

74 阅读2分钟

准备:

一些文档:

语言特点:

  • 高性能,高并发
  • 跨平台
  • 完善的标准库
  • 快速编译
  • 垃圾回收

开发环境

  • 安装go语言
  • 配置环境变量
  • 集成开发环境:使用IDEA

Good to go:

Hello World!

hello

package hello

import "fmt"

/**
 * 首字母大写,可以被包外访问(小写)
 * 首字母小写,外界无法访问
 */
func SayHello() {
   fmt.Println("Hello, World!")
}

main

package main

//批量导使用()
import (
   "hello"
        //还可以给包起别名
   h "hello"
)

func main() {
   hello.SayHello()
   h.SayHello()
}

基本语法

1. 常量

常量在声明时就必须初始化一个值,并且常量的类型可以省略

func Constant {
const msg string = "hello world"
const HTTPStatusOK = 200
}

只声明不赋值,就无法通过编译

const name string //error:常量声明中缺少值

2. 变量

  1. 声明和赋值
func Variables() {
var a string = "test"
//声明多个相同类型的变量可以只声明一次
var b, c int = 1, 2
//只声明不赋值,则默认存储对应类型的零值
var char byte

    /*
   以上写法等同于
   var(
    a string = "test"
    b, c int = 1, 2
    char byte
   )
    */
    
//短变量  
d := "声明并赋值,并自动识别类型"
//批量初始化
name, age := "jack", 1 
//不能使用nil
//name := nil // 无法通过编译


fmt.Println(a, b, c, d, char) 
//输出:test 1 2 声明并赋值,并自动识别类型 0
}
  1. 交换变量
func Exchange() {
    num1, num2, num3 := 25, 36, 114
    num1, num2, num3  = num3, num2, num1
    fmt.Println(num1, num2, num3)
    //输出:114 36 25
}
  1. 作用域

变量的作用域为函数内部时,创建新变量后未调用,就无法通过编译

package main

func main() {
var name string
var age int
name, age = "丁真", 1
}

当变量的作用域为整个包时,就允许该变量未被使用

package main

var name string
var age int
func main() {
 name, age = "丁真", 1
}