美文网首页GOLANG
Go编程基础(介绍和安装)

Go编程基础(介绍和安装)

作者: Michaelhbjian | 来源:发表于2018-10-07 19:41 被阅读40次

Go(又称Golang[3])是Google开发的一种静态强类型编译型并发型,并具有垃圾回收功能编程语言。来自维基百科

1.什么是Go语言?

image.png

Go是一门并发支持、垃圾回收和编译型系统编译语言,旨在创造一个门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。

Go语言是Rob Pike以及Ken Thompson于2007年9月开始设计的,Go是基于Inferno操作系统所开发的。[4]Go于2009年11月正式宣布推出,成为开放源代码项目,并在LinuxMac OS X平台上进行了实现,后来追加了Windows系统下的实现。(这个类似土拨鼠的logo是由Rob Pike 的妻子 Renee French 绘制的)

2. Go语言的优点

Go语言的价值:Go在谷歌:以软件工程为目的的语言设计

Go的主要特点有如下几点:

  • 1、类型安全和内存安全
  • 2、以非常直观和极低代价的方案实现高并发
  • 3、高效的垃圾回收机制
  • 4、快速编译(同时解决了C语言中头文件太多的问题)
  • 5、为多核计算机提供性能提升的方案

3.Go语言的项目架构

Go语言的工作目录如下表,根据约定,GoPath下需要建立3个目录

目录 含义
bin 存放编译后生成的可执行文件
pkg 存放编译后生成的包文件
src 存放项目源码

GOPATH是的你的工作目录,GOROOT是你的安装目录。

程序的整体结构如下图所示:

image.png

4.Go语言的开发环境

本教程采用go1.9以及goland 2018.1的开发环境,首先要学会环境配置(这里就不讲了,比较简单),然后开始Go的开发之旅了!

1.新建一个HelloWord.go文件

在右键新建的时候会两种文件格式:

image.png

Empty file是新建后是一个空文件,然后Simple Application新建后会有main函数的示例代码。

package main
import "fmt"
func main() {
    fmt.Print("hello,world!")
}

Go程序的一般结构:

  • 1、Go程序是通过package来组织的;
  • 2、只有package名称为main的包可以包含main函数,一个可执行程序有且仅有一个main包;
  • 3、通过import关键字来导入其他非main包;
  • 4、通过const关键字进行常量的定义;
  • 5、通过在函数体外部使用var关键字来进行全局变量的声明与赋值;
  • 6、通过type关键字来进行结构(struct)或接口(interface)的声明;
  • 7、通过func关键字来进行函数的声明。

运行结果如下:

image.png

2.基本类型

go语言的基本类型如下:

image.png image.png image.png

示例如下:

package main
import (
    "fmt"
    "strconv"
)
func main() {
    //声明和赋值
    var a int = 65
    var c int = 75
    //简化赋值和显示强制转换
    b:= string(a)
    //转换为数字
    d:= strconv.Itoa(c)
    fmt.Println(b)
    fmt.Println(d)
}

结果如下:

image.png

因为string()表示将数据转换为文本格式,因此计算机中存储的任何东西本质都是数字,因此此函数自然地认为我们需要的是65表示的文本A。

3.函数

函数的调用如下:参考文件Go指南中文版

//func 方法名  形式参数  返回参数类型
func add(x int,y int) int {
    return x+y
}
//func add(x ,y int) int {
//  return x+y
//}
func main() {
    fmt.Print(add(42,13))
}

4.多值返回

package main
import "fmt"
func main() {
    a,b:=swap("hello","world")
    fmt.Print(a,b)
}
func swap(a string, b string) (string,string) {
        //这个可能是交换程序了,甚至不需要不需要一个临时变量,但是这个内部是怎么做的呢?
        return b,a
}

Q:go语言中swap方法是如何做的呢?

5.变量以及短变量的使用

package main
import "fmt"
var i,j int =1,2
func main() {
    var c, python, java  = true,false,"no"
    //短变量的声明和赋值
    k:=3
    fmt.Print(i,j,c,python, java,k)
}

6.各种类型的初始值

package main
import "fmt"
func main() {
    var i int
    var f float64
    var b bool
    var s string
    fmt.Printf("%v %v %v %q\n", i, f, b, s)
}
image.png

7.类型转换(必须显示转换,在Go中不能隐式转换)

package main
import (
    "math"
    "fmt"
)
func main() {
    var x, y int = 3, 4
    //将xy的值强制类型转换为float64类型
    var f float64 = math.Sqrt(float64(x*x+y*y))
    //unit无符号整数
    var z uint = uint(f)
    fmt.Print(x,f,z)
}

5.参考资料

https://go-zh.org/doc/

相关文章

  • Go编程基础(介绍和安装)

    Go(又称Golang[3])是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。来...

  • GO学习笔记(18) - 并发编程(3)- Select与Cha

    本文主要讲解Go并发编程之Select 目录 介绍 基础语法 timeout 综合实例 select 是 Go 中...

  • Go语言超详细学习知识体系

    Go编程入门 基础语法 环境安装 下载地址https://golang.google.cn/dl/ GOPATH、...

  • Go语言入坑

    GO语言基础 认识并安装GO语言开发环境 Go语言简介 Go语言是谷歌2009年发布的第二款开源编程语言 go语言...

  • Go 基础

    基础 [TOC] 特性 Go 并发编程采用CSP模型不需要锁,不需要callback并发编程 vs 并行计算 安装...

  • Go并发编程-channel多路复用

    在前面两篇文章中,已经详细的介绍了 goroutine 和 channel,它们是 Go 并发编程的基础。今天这篇...

  • go 学习笔记之数组还是切片都没什么不一样

    上篇文章中详细介绍了 Go 的基础语言,指出了 Go 和其他主流的编程语言的差异性,比较侧重于语法细节,相信只要稍...

  • Go 语法基础--学习笔记

    安装以及基本语法参考官方文档即可。 入门资源分享: Go 编程基础::无闻录制的新手入门视频教程 Go入门指南 :...

  • Go 并发编程-channel 连接一切

    在上一篇文章中,我们介绍了 Go 并发编程的基础—goroutine,同时也介绍 goroutine 的几种使用方...

  • Golang资料整理

    视频 郝林-Go语言第一课 Go编程基础 Go Web 基础 Go名库讲解 社区 官网要翻墙 Github--Go...

网友评论

    本文标题:Go编程基础(介绍和安装)

    本文链接:https://www.haomeiwen.com/subject/gaqraftx.html