博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识 go 语言
阅读量:6623 次
发布时间:2019-06-25

本文共 2137 字,大约阅读时间需要 7 分钟。

目录

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


go简介

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

安装

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

hello world

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

package mainimport (    "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 boolvar istrue bool = truefunc 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 mainimport (    "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://www.cnblogs.com/cmyxn/p/9272679.html

你可能感兴趣的文章
jFinal 关联数据库操作
查看>>
团队冲刺第二天
查看>>
sed删除空行和开头的空格和tab键
查看>>
php扩展安装
查看>>
Windows与Linux之间的文件自动同步
查看>>
What a C programmer should know about memory
查看>>
MySQL备份账号权限
查看>>
15个重要的Android代码
查看>>
(转)android 牛人必修 ant 编译android工程
查看>>
求最大公约数与最小公倍数
查看>>
C# Winform 跨线程更新UI控件常用方法总结(转)
查看>>
eclipse菜单栏不显示 + the system is running in lou-graphics mode问题
查看>>
【WebService】使用jaxb完成对象和xml的转换
查看>>
如何去除My97 DatePicker控件上右键弹出官网的链接 - 如何debug混淆过的代码
查看>>
多文档
查看>>
输入5个学生的信息(包括学号,姓名,英语成绩,计算机语言成绩和数据库成绩), 统计各学生的总分,然后将学生信息和统计结果存入test.txt文件中...
查看>>
Linux 小知识翻译 - 「协议(protocol)」
查看>>
elixir mix 简介
查看>>
HDU 1166 敌兵布阵
查看>>
BZOJ2337 [HNOI2011]XOR和路径
查看>>