go语言的特性(代码片段)

domestique domestique     2023-01-24     638

关键词:

一、golang语言特性

 1. 垃圾回收

a、内存自动回收,再也不需要开发人员管理内存  //开发代码中不能存在无引用的变量,不然代码出错

b、开发人员专注业务实现,降低了心智负担

c、只需要new分配内存,不需要释放

2. 天然并发

a、从语言层面支持并发,非常简单

b、goroute,轻量级线程,创建成千上万个goroute成为可能

c、基于CSP(Communicating Sequential Process)模型实现(基于goroute、channel)

并发实例:

不需要担心编码问题,全是utf-8

:=  相当于变量的声明和赋值

在go名称中不建议使用下划线 _

//单行注释

/*   */多行注释

go  fmt -w filename   格式化代码文件(排版)

技术分享图片goroutine

 3. channel(管道,进程间的通信)

a、管道,类似unix/linux中的pipe

b、多个goroute之间通过channel进行通信

c、支持任何类型

func main() 
  pipe := make(chan int,3)  //make  分配内存空间
  pipe <- 1                 //向管道里面扔数值
  pipe <- 2
  // len(pipe)  管道的长度
t1 =<- pipe //取管道里面的数据 

管道的传值:

main/main.go

技术分享图片View Code

goroute/add.go

技术分享图片View Code

4. 多返回值

  一个函数返回多个值

main/main.go

package main
import(
    "go_dev/day1/package_example/calc"  //调用其他包,路径根据GOPANTH不用写src,直接从src目录下开始
"fmt" ) func main() sum,_ := calc.Add(100, 300) //接收返回值得一个,_没有值,打印报错 fmt.Println("sum=",sum)

calc/Add.go

package calc
func Add(a int, b int) (int,int) 
    return a + b,a - b

二、包的概念

1、和python一样,把相同功能的代码放到一个目录,称之为包

2、包可以被其他包引用(包内的变量名必须是大写开头,才能被其他包调用)

3、main包是用来生成可执行文件,每个程序只有一个main包

4、包的主要用途是提高代码的可复用性

 

三、包的编译

 建立如下目录结构:

技术分享图片

将project添加到GOPATH的环境变量中

技术分享图片

然后在PROJECT下编译代码:

go  build   godev/day1      //因为添加了GOPATH环境变量,能直接找到src文件,所以不用写src,直接编译包含main包的库就是了。

go build  -o  bin/day1.exe   godev/day1     // 将编译文件保存在PROJECT/bin下,并制定编译后的文件名

编译完成后,会生成day1.exe文件,.day1.exe执行

技术分享图片





go语言入门特性安装环境搭建第一个程序等(代码片段)

Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(RobPike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。Go语言特性自动垃圾... 查看详情

15.go语言“避坑”与技巧(代码片段)

Go语言“避坑”与技巧任何编程语言都不是完美的,Go语言也是如此。Go语言的某些特性在使用时如果不注意,也会造成一些错误,我们习惯上将这些造成错误的设计称为“坑”。Go语言的一些设计也具有与其他编程语言不一样的... 查看详情

go语言入门(代码片段)

GO语言耳闻已久的Go语言,今天入门了解一下。Go之所以火爆的原因之一是,拥有CoreOS,Kubernetes(Google),InfluxDB知名大客户,另外Docker也是Go语言所编写。Go语言的功能特性(所有这些特性,以后慢慢学习了解)并发支持简单性... 查看详情

03go语言特性(代码片段)

一、基本注意事项  1.转义字符1\t一个制表符,代表一次tab2\n换行符3\\转义代表4\"转义代表"5\r一个回车,从当前行的最前面开始输出,会覆盖以前的内容,常配合\r\n换行使用  2.注释1//行注释2//本行已被注释3/**/块注释4/*本段... 查看详情

云原生训练营模块一go语言特性(代码片段)

Go语言特性如何学习云原生技术?构建高可用微服务架构统一思想Go语言Go语言特点Go语言编译环境控制结构数据结构生产者与消费者代码如何学习云原生技术?代码驱动掌握Go语言编程能力从点到面学习容器技术cgroup,... 查看详情

go语言和scala语言对比(代码片段)

...在LinkedIn写过Scala。两者都是具有一流的并发特性的现代语言。下面的回答是基于我编写大规模的软件的经验得出。Go是一种开发模式严格固定,并且以最小代码量编译成机器代码的语言。Scala是一种拥有多种特性并运行在JVM上的... 查看详情

云原生训练营模块一1.1go语言特性(代码片段)

Go语言特性如何学习云原生技术?构建高可用微服务架构统一思想Go语言Go语言特点Go语言编译环境控制结构数据结构如何学习云原生技术?代码驱动掌握Go语言编程能力从点到面学习容器技术cgroup,namespace网络协议栈... 查看详情

go语言中的函数(代码片段)

...递数据,返回值,函数将处理好的数据传递给调用者。Go语言中函数被称为一等公民(first-class)。意味着支持高阶函数,支持匿名函数,支持闭包等特性,可以满足接口等高级函数特性。2定义语法:定义:func函数名( 查看详情

1.go语言简介(代码片段)

Go语言简介引用原文地址:http://m.biancheng.net/golang/Go语言也称Golang,兼具效率、性能、安全、健壮等特性。这套Go语言教程(Golang教程)通俗易懂,深入浅出,既适合没有基础的读者快速入门,也适合工作多年的程序员查阅知识点... 查看详情

09.go语言并发(代码片段)

Go语言并发并发指在同一时间内可以执行多个任务。并发编程含义比较广泛,包含多线程编程、多进程编程及分布式程序等。本章讲解的并发含义属于多线程编程。Go语言通过编译器运行时(runtime),从语言上支持了并发的特性... 查看详情

go语言初尝(代码片段)

如果把C变成C++,那么C就消失了。概述对于语言设计之争,唯一需要牢记的一句话是:如果把C变成C++,那么C就消失了。Go是一个轻量级的简洁的支持并发的现代语言,可以用于探索性个人项目,这是我想学这门语言的主要原因。... 查看详情

❤️go有别于其他语言的九个特性❤️(代码片段)

...料、面试题库。文末领取直接跳到末尾领取资料随着编程语言的发展,Go还很年轻。它于2009年11月10日首次发布。其创建者Robert 查看详情

❤️go有别于其他语言的九个特性❤️(代码片段)

...料、面试题库。文末领取直接跳到末尾领取资料随着编程语言的发展,Go还很年轻。它于2009年11月10日首次发布。其创建者Robert 查看详情

go函数特性和网络爬虫示例(代码片段)

爬取页面这篇通过网络爬虫的示例,来了解Go语言的递归、多返回值、延迟函数调用、匿名函数等方面的函数特性。首先是爬虫的基础示例,下面两个例子展示通过net/http包来爬取页面的内容。获取一个URL下面的程序展示从互联... 查看详情

go学习(代码片段)

Go学习Go语言优势可直接编译成机器码,不依赖其他库。静态类型语言语言层面支持并发内置runtime,支持垃圾回收简单易学,Go语言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go关键字是25个,但是表达能力很强大,... 查看详情

go语言介绍及环境准备(代码片段)

第一章认识go语言Go语言诞生在2007的某一天,一些大牛正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的分布式集群,这些大牛就觉得很闹心,后来c++委员会来他们公司演讲,说c++将要添加大概35种新特性。于是其中... 查看详情

go语言学习-接口(代码片段)

Go语言中虽然没有传统面向对象语言中类、集成的概念,不过提供了接口的支持,可以使用接口来使用一些面向对象的特性。在go语言中,的接口有下面几个特点:可以包含0个或多个方法的签名只定义方法的签名,不包含实现实现... 查看详情

cgo类型转换(代码片段)

类型转换最初CGO是为了达到方便从Go语言函数调用C语言函数(用C语言实现Go语言声明的函数)以复用C语言资源这一目的而出现的(因为C语言还会涉及回调函数,自然也会涉及到从C语言函数调用Go语言函数(用Go语言实现C语言声... 查看详情