![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
Seekload
运营公众号「Golang来啦」,终身学习者!
展开
-
可变函数 -- 就要学习 Go 语言
原创文章,若需转载请注明出处!欢迎扫码关注公众号「Golang来了」或者移步 www.seekload.net,查看更多精彩文章。在上篇文章里,讲解了关于函数的概念和用法,函数接收的参数数目都是确定的。这一节,来讲讲可变参数函数 。可变参数函数可变参数函数,接收可变数量的参数的函数。如果一个函数的最后一个参数的表示形如:...Type,则该参数(形参)可以接受不同数目的参数(实参)。...原创 2019-02-18 12:41:36 · 274 阅读 · 0 评论 -
教女朋友写方法 -- 就要学习 Go 语言
刚接触 Go 语言的函数和方法时,我产生过这样的疑惑:为什么会严格区分这两者的概念?学完之后才知道,不像别的语言,函数即方法,方法即函数,例如:Java、PHP等。方法定义定义方法与函数类似,区别在于:方法定义时,在 func 和方法名之间会增加一个额外的参数。如下:func (receive Type) methodName(...Type) Type { ...}(rece...原创 2019-03-03 21:09:34 · 299 阅读 · 0 评论 -
Go 语言类型系统详解
这是『就要学习 Go 语言』系列的第 18 篇分享文章什么是类型不同的编程语言之间,类型的概念有所不同,可以用许多不同的方式来表达,但大体上都有一些相同的地方。类型是一组值;相同类型的值之间可以进行哪些操作,例如:int 类型可以执行 + 和 - 等运算,而对于字符类型,可以执行连接、空检查等操作;因此,语言类型系统指定哪些运算符对哪些类型有效。Go 语言的类型系统boo...原创 2019-03-27 21:28:45 · 243 阅读 · 0 评论 -
Go 语言接口详解(一)
什么是接口在一些面向对象的编程语言中,例如 Java、PHP 等,接口定义了对象的行为,只指定了对象应该做什么。行为的具体实现取决于对象。在 Go 语言中,接口是一组方法的集合,但不包含方法的实现、是抽象的,接口中也不能包含变量。当一个类型 T 提供了接口中所有方法的定义时,就说 T 实现了接口。接口指定类型应该有哪些方法,类型决定如何去实现这些方法。接口声明接口的声明类似于结构体,使用类...原创 2019-03-29 07:27:23 · 1267 阅读 · 2 评论 -
Go 语言接口详解(二)
这是『就要学习 Go 语言』系列的第 20 篇分享文章我们接着上一篇,继续讲接口的其他用法。实现多个接口一种类型可以实现多个接口,来看下例子:type Shape interface { Area() float32}type Object interface { Perimeter() float32}type Circle struct { radius floa...原创 2019-04-16 06:40:10 · 315 阅读 · 1 评论 -
Go 并发 -- 信道
这是『就要学习 Go 语言』系列的第 22 篇分享文章上篇文章讲了关于协程的一些用法,比如如何创建协程、匿名协程等。这篇文章我们来讲讲信道。信道是协程之间通信的管道,从一端发送数据,另一端接收数据。信道声明使用信道之前需要声明,有两种方式:var c chan int // 方式一c := make(chan int) // 方式二使用关键字 chan 创建信道,声明时...原创 2019-04-22 08:12:51 · 271 阅读 · 0 评论 -
Go 并发 -- 协程
这是『就要学习 Go 语言』系列的第 21 篇分享文章并发与并行提到并发,相信大家还听过另一个概念 – 并行。我先给大家介绍下这两者之间的区别,再来讲 Go 语言的并发。并行其实很好理解,就是同时执行的意思,在某一时间点能够执行多个任务。想达到并行效果,最简单的方式就是借助多线程或多进程,这样才可在同一时刻执行多个任务。单线程是永远无法达到并行状态的。并发是在某一时间段内可以同时处理...原创 2019-04-19 08:11:46 · 196 阅读 · 0 评论 -
Go 并发 -- Select
这是『就要学习 Go 语言』系列的第 23 篇分享文章Select 的作用select 的用法有点类似 switch 语句,但 select 不会有输入值而且只用于信道操作。select 用于从多个发送或接收信道操作中进行选择,语句会阻塞直到其中有信道操作可以执行,如果有多个操作可以执行,会随机选择其中一个 case 执行。看下例子:func service1(ch chan stri...原创 2019-04-29 07:27:52 · 249 阅读 · 0 评论 -
教女朋友写方法(续)
这是『就要学习 Go 语言』系列的第 24 篇分享文章之前的文章给大家总结过方法的一些基本用法,最近在学 Go 面向对象式编程,对方法又有一些新的认识,总结一下。之前我们讲过方法分为值方法和指针方法,这篇文章主要来讲讲这两者的区别。两者的定义:接收者类型为 T 的方法称为值方法;接收者类型为 *T 的方法称为指针方法其中 T 必须满足如下条件:T 必须是自定义类型;T 的定义必须与...原创 2019-06-08 07:17:01 · 271 阅读 · 0 评论 -
Go 面向对象式编程
这是『就要学习 Go 语言』系列的第 25 篇分享文章Go 语言没有对象的概念,但是 struct 类型有着和对象类似的特性。struct 类型可以定义自己的属性和方法。关于 struct 的详细讲解可以看我之前的文章。嵌入类型嵌入类型是指将已有的类型直接声明在新的结构类型里。不像 Java、C++ 等语言,Go 语言没有继承,但是可以通过组合的方式实现代码的复用。type User...原创 2019-06-16 23:12:30 · 407 阅读 · 0 评论 -
Go 面试每天一篇(第 8 天)
1.关于init函数,下面说法正确的是()A. 一个包中,可以包含多个 init 函数;B. 程序编译时,先执行依赖包的 init 函数,再执行 main 包内的 init 函数;C. main 包中,不能有 init 函数;D. init 函数可以被其他函数调用;2.下面这段代码输出什么以及原因?func hello() []string { return nil...原创 2019-08-31 19:55:28 · 1005 阅读 · 0 评论 -
函数 -- 就要学习 Go 语言
函数原创 2019-01-31 12:42:46 · 138 阅读 · 0 评论 -
包罗万象的结构体 -- 就要学习 Go 语言
Go 语言的数组可以存储一组相同类型的数据,而结构体可以将不同类型的变量数据组合在一起,每一个变量都是结构体的成员。创建并初始化一个结构体可以使用下面的语法创建一个结构体:type StructName struct{ field1 fieldType1 field2 fieldType2}创建一个含有 firstName、lastName、salary 和 fullT...原创 2019-01-31 12:30:15 · 658 阅读 · 0 评论 -
Strings、bytes and runes -- 就要学习Go语言
Go 中的字符串值得特别关注,与其他语言相比,Go 中的字符串实现方式有所不同。字符串在Go中,使用双引号 "" 声明字符串:s := "Hello world"fmt.Println("len(s):",len(s))fmt.Println(s); 输出:len原创 2018-12-23 21:10:34 · 192 阅读 · 0 评论 -
聊聊Go工作空间
前沿对于刚开始学Go的同学,可能会对几个概念比较迷糊:GOROOT和GOPATH,今天就来聊聊它们。执行go env,给大家看下我开发环境的相关参数配置(部分):GOARCH="amd64"GOBIN="/Users/chengguilu/goProjects/bin&am原创 2018-11-27 06:59:58 · 830 阅读 · 0 评论 -
Go包-代码组织者
什么包、作用是什么?包应该如何命名?包的可见性获取远程包原创 2018-11-30 19:20:10 · 353 阅读 · 0 评论 -
变量和常量--就要学习Go系列
变量命名原则Go语言的变量由字母、数字和下划线组成,但不能以数字开头。(注意:关键字和保留字不能当做变量使用)有效的变量:_firstgo 、abc、abc360、go_abc无效的变量:360abc(数字开头)、case(关键字)、a+b+c(含有运算符)声明与初始化变量的声明有点像javascript,使用var关键字// 变量声明格式var identifier type注...原创 2018-11-30 19:23:00 · 149 阅读 · 0 评论 -
条件语句和循环语句--就要学习Go系列
运算符运算符用于在程序运行时执行数学或者逻辑运算。算术运算符运算符说明+中等文本-短文本*短文本/短文本%短文本++短文本- -短文本条件语句循环语句...原创 2018-12-03 07:13:44 · 270 阅读 · 0 评论 -
数字类型--就要学习Go系列
前言数字类型当然是用来表示数字的,分为整型和浮点型。整型整型用来存储整数,Go有几种不同大小的内置整数类型,用于存储有符号和无符号整数。有符号整型类型符大小范围int88 bits-128 to 127int1616 bits-2152^{15}215 to 2152^{15}215 -1int3232 bits-2312^{31}231 t...原创 2018-12-05 22:11:23 · 232 阅读 · 0 评论 -
我是数组--就要学习Go语言
前言Go 语言给用户提供了三种数据结构用于管理集合数据:数组、切片(Slice)和映射(Map)。这三种数据结构是语言核心的一部分,在标准库里被广泛使用。学会这些数据结构,编写go程序会变得快速、有趣且十分灵活。掌握数组是理解切片和映射的基础,我们就从数组开始学习。什么是数组Go语言中,数组是一个长度固定的数据类型,用于存储一段相同数据类型的元素,这些元素在内存中是连续存储的。数组存储的类型...原创 2018-12-20 19:53:24 · 112 阅读 · 0 评论 -
非懂不可的Slice(一)-- 就要学习Go语言
前言切片是一种复合数据类型,与数组类似,存放相同数据类型的元素,但数组的大小是固定的,而切片的大小可变,可以按需自动改变大小。切片是基于底层数组实现的,是对数组的抽象。切片很小,只有三个字段的数据结构:指向底层数组的指针、能访问的元素个数(即切片长度)和允许增长到的元素个数(即切片容量)。如上图所示,一个长度为3、容量为5的整型切片的底层结构。声明与初始化make()创建使用内置函数创建...原创 2018-12-15 19:47:08 · 199 阅读 · 0 评论 -
运算符--就要学习Go语言
今天,我们来讲下Go语言的算术运算符、比较运算符和逻辑运算符。算术运算符+ sum integers, floats, complex values (复数), strings- difference integers, floats, complex values* product ...原创 2018-12-10 20:09:07 · 170 阅读 · 2 评论 -
彻底学会Go指针--就要学习Go语言
什么是指针写代码的时候,我们通过变量就可以操作存储在内存中的值,进行赋值、加减运算等。大家有没有想过,变量代表什么呢?其实,一个变量对应一段内存空间,这段空间就存储了该变量相对应类型的值。指针的值就对应变量的地址,只通过指针,就可以更新或者读取变量的值,而不需要用到变量名。var i int = 10 //声明变量i,并初始化为10var ptr *int = &i fm...原创 2018-12-10 20:11:09 · 203 阅读 · 0 评论 -
非懂不可的Slice(二)-- 就要学习Go语言
非懂不可的Slice(一)-- 就要学习Go语言原创 2018-12-22 14:24:48 · 152 阅读 · 0 评论 -
切片 -- 就要学习Go语言
前言Hash表是一种巧妙并且实用的数据结构,是一个无序的key/value对的集合,其中所有的key都是不同的,通过给定的key可以在常数时间复杂度内检索、更新或删除对应的value。Map其实是一个Hash表的引用,能够基于键快速检索出数据,键就像索引一样指向与该键关联的值。以后有机会再给大家讲Map底层的东西,教会大家如何使用Map才是这一节的重点,记住一点:Map存储的是无序的键值对集合。...原创 2018-12-22 14:26:05 · 201 阅读 · 0 评论 -
Go 面试每天一篇(第 9 天)
1.关于channel,下面语法正确的是()A. var ch chan intB. ch := make(chan int)C.原创 2019-08-31 19:56:21 · 1053 阅读 · 0 评论