zoukankan      html  css  js  c++  java
  • golang学习笔记

    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关键字,类型信息放在变量名之后。
    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,而指针是nilstring""

    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:  <nil>
    */
    

    类型(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)

    • 函数定义
    func func_name() {
    	
    }
    
    • 函数调用
    • 不定参数
    • 多返回值
    • 匿名函数&&闭包
    • 包管理

    面向对象

    • 方法(method)
    • 匿名字段
    • 接口(interface)
    梦之所寄,行之所为,地狱之门为之洞开!
  • 相关阅读:
    Spring MVC — @RequestMapping原理讲解-1
    搭建一个SVN
    WebService远程调用技术
    Linux命令的复习总结学习
    电商-购物车总结
    单点登录系统---SSO
    JAVA的设计模式之观察者模式----结合ActiveMQ消息队列说明
    23种设计模式
    使用netty实现的tcp通讯中如何实现同步返回
    rabbitmq集群安装
  • 原文地址:https://www.cnblogs.com/Sprout/p/5560761.html
Copyright © 2011-2022 走看看