golang学习笔记

Sprout · · 1421 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang学习笔记

基本语法

关键字(key word) && 变量

  • 关键字
    golang仅有25个关键字,如下:

    var     import    type    return    const
    if      else      for     range     break
    select  default   goto    switch    fallthrough
    func    interface case    chan      continue
    defer   go        map     struct    package   
  • 变量声明&&初始化&&赋值
    golang变量声明方式与C/C++系语言有明显不同,对于golang这种声明方式知乎上有讨论为什么 Go 语言把类型放在后面?
    golang引入var关键字,类型信息放在变量名之后。
    ```go
    var n int // 定义一个int变量
    var f float32
    var str string // 定义一个string变量
    var arr [10]int // 数组
    var m map[int]int // map
    var p *int // pointer

var n int = 10 //定义并初始化
var n = 10
n := 10 // 效果样,可以自动推到n类型

n = 100 // 赋值
n2 := n // 定义并初始化

// ……

由上面示例可以看出,golang语句不需要分号作结束符,而且定义一个变量是被初始化的一般默认值是`0`,而指针是`nil`,`string`是`""`。

package main

import "fmt"

func main() {
var n int
fmt.Println("int: ", n)
var f float32
fmt.Println("float: ", f)
var str string
fmt.Println("string: ", str)
var arr [10]int
fmt.Printf("array: ")
for i := 0; i < len(arr); i++ {
fmt.Printf("%d ", arr[i])
}
fmt.Println()
var p int
fmt.Println("
int: ", p)
}
/
output:
int: 0
float: 0
string:
array: 0 0 0 0 0 0 0 0 0 0
int:
*/
```

类型(type)

golang中内置基础类型

  • boolean
  • int8、byte、int16、int、uint、uintptr
  • float32、float64
  • complex64、complex128
  • string
  • rune
  • error

复合类型

  • 数组(array)
  • 字典(map)
  • 切片(slice)
  • 结构体(struct)
  • 通道(chan)
  • 接口(interface)
  • 指针(pointer)
  • 引用(reference)

流程控制(flow control)

  • 条件语句
    if else
  • 选择语句
    switch case select
  • 循环语句
    for range
  • 跳转语句
    goto

函数(function) && 包(package)

  • 函数定义
    ```go
    func func_name() {

}
```

  • 函数调用
  • 不定参数
  • 多返回值
  • 匿名函数&&闭包
  • 包管理

面向对象

  • 方法(method)
  • 匿名字段
  • 接口(interface)

有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:Sprout

查看原文:golang学习笔记

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1421 次点击  
加入收藏 微博
1 回复  |  直到 2000-01-01 00:00:00
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传