Golang学习笔记(一):简介

Go语言最主要的特性

代码如下:

自动垃圾回收
更丰富的内置类型
函数多返回值
错误处理
匿名函数和闭包
类型和接口
并发编程
反射
语言交互性

高性能/高效开发

安装

安装说明 地址 http://golang.org/doc/install

包下载 地址 https://code.google.com/p/go/downloads/list

确认是否安装成功

代码如下:

go version //查看版本

环境变量设置

整体目录结构

通过package组织,只有package名称为main的可以包含main函数

一个程序有且仅有一个main包

通过import 关键字导入其他非main包

代码如下:

bin/
    |- mathapp
pkg/
    |- 平台名
        |- xxx.a
src/
    |- mathapp
        |- main.go

Helloworld

代码如下:

package main //声明文件的package

import {
    "fmt" //import 包,不能包含没有用到的包,否则而编译错误
}
func main() { //入口函数, 无参数无返回值
    fmt.Println("hello world")
}

//运行
$go run hello.go

$go build hello.go
$./hello

go命令

用命令行查看

go help

代码如下:

go build 编译
go clean 移除当前源码包里面的编译生成文件
go fmt 格式化代码
go get 动态获取远程代码包
go install 生成结果文件,并将编译好的结果一到$GOPATH/pkg或者$GOPATH/bin
go test 运行测试用的可执行文件
go doc   godoc -http=:8080 查看文档

go fix 修复以前老版本代码到新版本
go version查看当前版本
go env 查看当前go的环境变量
go list 列出当前所有安装package
go run 编译并运行go语言程序

调试

使用gdb进行调试, go语言内部已经内置了

代码如下:

list
break
delete
backtrace
info
print
whatis
next
continue
set variable

编辑器设置

vim

其他补充
注释

代码如下:

//单行
/* ----- */ 多行

import 多个包

代码如下:

import (
    "fmt"
    "os"
)

调用包里地函数

代码如下:

<packageName>.<Function>

(0)

相关推荐

  • Golang学习笔记之安装Go1.15版本(win/linux/macos/docker安装)

    安装Go1.15版本 大纲 Windows安装GoLinux安装GoMacOS安装GoDocker安装Go总结 视频地址:https://www.bilibili.com/video/BV14a4y177XG?p=3 Windows安装Go 1.点击下载go1.15版本的msi安装包 64位系统 https://studygolang.com/dl/golang/go1.15.windows-amd64.msi 32位系统 https://studygolang.com/dl/golang/go

  • Golang学习笔记(一):简介

    Go语言最主要的特性 复制代码 代码如下: 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 高性能/高效开发 安装 安装说明 地址 http://golang.org/doc/install 包下载 地址 https://code.google.com/p/go/downloads/list 确认是否安装成功 复制代码 代码如下: go version //查看版本 环境变量设置 整体目录结构 通过package组织,只有packa

  • Node.js 学习笔记之简介、安装及配置

    简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅读本教程? 如果你是一个前端程序员,你不懂的像PHP.Python或Java等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择. Node.js 是运行在服

  • Golang学习笔记之延迟函数(defer)的使用小结

    golang的defer优雅又简洁, 是golang的亮点之一.defer在声明时不会立即执行,而是在函数return后,再按照先进后出的原则依次执行每个defer,一般用于释放资源.清理数据.记录日志.异常处理等. 关键字defer于注册延迟调用.这些调用直到 ret 前才被执行,通常用于释放资源或错误处理. 一.当defer被声明时,其参数就会被实时解析 func a() { i := 0 defer fmt.Println(i) //输出0,因为i此时就是0 i++ defer fmt.P

  • Golang学习笔记(四):array、slice、map

    一.Array 在Go语言中,数组是一个值类型(value type) 所有的值类型变量在赋值和作为参数传递时都将产生一个复制动作 如果作为函数的参数类型,则在函数调用时参数发生数据复制,在函数体中无法修改传入数组的内容 数组相等用 = != 比较,不能用 < > 1.声明&赋值 初始化 语法 复制代码 代码如下: var VarName [n]type     // n>=0 e.g. var a [5]int //[0 0 0 0 0] var c [2][3]int //二

  • Golang学习笔记(五):函数

    函数 Go语言里面的核心设计,通过关键字func来声明 复制代码 代码如下: func funcName(input type1, input2 type2) (output1 type1, output2 type2) {     //logical code     return value1, value2 } 基本语法 1.语法 复制代码 代码如下: //一般函数 func func_name(a int) {     println(a) } //多参数,无返回值 func func_

  • Golang学习笔记(三):控制流

    控制结构分为: 条件+选择+循环 IF 1.说明 复制代码 代码如下: 条件表达式没有括号 支持一个初始化表达式(可以是多变量初始化语句) 初始化语句中定义的都是只能在block级别中使用的局部变量,不能在block之外使用 左大括号必须和条件语句在同一行(必须与if/else在同一行) go没有三元运算符 if判断语句条件不需要括号 在判断语句里卖弄允许声明一个变量,其作用域只在逻辑块内,其他地方不起作用 花括号一定存在,且必须与if/else在同一行 2.语法 复制代码 代码如下: //基本

  • Golang学习笔记(二):类型、变量、常量

    基本类型 1.基本类型列表 复制代码 代码如下: 类型        长度     说明 bool         1      true/false,默认false, 不能把非0值当做true(不用数字代表true/false) byte         1      uint8 别名 rune         4      int32别名. 代表一个unicode code point int/unit            一来所运行的平台,32bit/64bit int8/uint8  

  • Golang学习笔记(六):struct

    struct struct,一组字段的集合,类似其他语言的class 放弃了大量包括继承在内的面向对象特性,只保留了组合(composition)这个最基础的特性 1.声明及初始化 复制代码 代码如下: type person struct {     name string     age  int } //初始化 func main() {     var P person P.name = "tom"     P.age = 25     fmt.Println(P.name)

  • C语言入门学习笔记之typedef简介

    在单片机和操作系统中 typedef 会经常用到,它可以为某一个类型自定义名称.和#define比较类似.但是又有不同的地方. typedef 创建的符号只能用于数据类型,不能用于值.而#define 创建的符号可以用于值. typedef 是由编译器来解释,而不是预处理器. typedef 使用起来更加灵活. 下面使用typedef定义一个数据类型 int main() { typedef unsigned char BYTE; BYTE c = 10; printf("%d \r\n&quo

随机推荐