• 初识 go 语言


    前言: 最近组内要试水区块链,初步方案定为使用fabirc来弄,而fabric的智能合约就是用go写的,借此机会正好学下go,本文也是从零开始,将go的基本语法,结构体,函数,方法,接口,并发等以小demo的方式进行讲解,有的地方会对比java加深记忆


    go简介

    go又称golang 是由Google开发,于2009年11月开源的一种服务端编程语言,go 很简洁,高效,支持并发 ,总之值得一看—— 维基百科

    安装

    • go环境: go官网下载 安装就是一路next
    • ide: liteIDE官网下载 我用的是 liteIDE ,下载压缩包之后直接解压使用,怎么用就自己学习下很简单的

    hello world

    学习每种编程语言都是从hello world开始的,本次也是

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	fmt.Println("hello world")
    }
    

    直接在ide中运行输出:hello world

    一个.go文件通常会包括

    • 声明包: package
    • 引入包: import
    • 变量/常量: var /const
    • 函数: func

    声明包
    使用 packge 关键字来声明一个包,每个 Go 程序都由包构成的
    引入包
    使用 import 关键字来导入所需的包,go语言强制规定,导入的包必须被使用否则编译不过

    import "fmt"
    import "math"
    //更简便的写法
    import (
        "fmt"
        "math"
    )
    

    函数

    使用 func 关键字来声明一个函数
    常用结构:

    	func methodName(var1 int,var2 int)  int{
    		 ..... 
    		 return xxx 
    	 }
    

    注意:与java不同的地方

    • 入参的结构:变量名在前,类型在后,如(var1 int,var2 int)java是类型在前,变量名在后
    • 返回值:函数的返回值在参数的后面java中是在方法名之前

    一个.go只能声明一个main函数,否则编译不过
    helloworld demo 的main函数没有入参也没有返回值,所以可以省略

    变量

    使用 var 声明一个变量列表,跟函数的参数列表一样,类型在最后;
    var 也是可以定在包内和函数内;
    如果定义的变量没有赋值则默认赋初始值:

    • 数值类型为 0
    • 布尔类型为 false
    • 字符串为 ""
    var isfalse bool
    var istrue bool = true
    
    func main() {
    	var num int
    	fmt.Println(num, isfalse, istrue)
    }
    

    定义多个及初始值
    如果初始化值已存在,则可以省略类型;变量会从初始值中获得类型

    
    var isfalse, istrue, x = true, false, "chenmingyu"
    
    func main() {
    	fmt.Println(isfalse, istrue, x)
    }
    

    当两个或多个变量类型相同时,只需要写最后一个变量的类型,如:x int, y int 可以写成 x, y int

    函数中,简洁赋值语句 := 可在类型明确的地方代替 var 声明,只能在函数内使用,所以函数外只能用var

    func main() {
    	var1 := "mingyu"
    	fmt.Println("say hello", var1)
    }
    

    常量

    使用const 关键字来声明常量,如:

    const word = "hello go"
    
    func main() {
    	fmt.Println(word)
    }
    

    函数的返回值
    go 语言函数支持返回任意数量的返回值,如:

    func transform(x, y string) (string, string) {
    	return y, x
    }
    func main() {
    	a, b := transform("say", "hello")
    	fmt.Println(a, b)
    }
    

    可见性规则

    在go中使用首字母大小写来决定该常量、变量、结构体、函数、接口是否可以被外部包调用

    • 首字母小写就相当于java中的 private
    • 首字母大写就相当于java中的 public
    package main
    import (
    	"fmt"
    	"math"
    )
    func main() {
    	fmt.Println(math.Abs(12))
    	//小写报错 undefined: math.abs
    	fmt.Println(math.abs(12))
    }
    

    ###结束 **初识 go 语言系列** - [x] 初始 go 语言 - [ ] 初识 go 语言:语法及类型 - [ ] 初识 go 语言:方法,接口及并发

    注意:本篇文中针对go环境的安装及ide的安装提供了网址,下载后可自行安装,liteIDE的使用可以自行学习很简单的
    学习一门新的编程语言。最重要的就是写,看三遍不如自己码一遍,所以开始吧
    学习网站:https://tour.go-zh.org

    关注公众号
    关注我的公众号

  • 相关阅读:
    超星电子书下载攻略
    快速生成PDF书签
    2016抢票软件分享
    Win10安装framework3.5
    .NET破解之分享给新注册的朋友
    封装JedisClient.提供API实现对redis的操作
    java操作redis集群配置[可配置密码]和工具类
    redis 集群java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法
    linux端口开放指定端口的两种方法
    redis requires ruby version 2.2.2的解决方案
  • 原文地址:https://www.cnblogs.com/cmyxn/p/9272679.html
Copyright © 2020-2023  润新知