Go语言中文网 为您找到相关结果 333

golang语言渐入佳境[23]-string分割类函数

string分割类函数123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263package mainimport ( "fmt" "strings" "unicode")/*1、func Fields(s string) []string将字符串s以空白字符分割,返回一个切片2、func FieldsFunc(s string, f func(rune) bool) []string将字符串s以满足f(r)==true的字符分割,返回一个切片3、func Split(s, sep string) []string将...阅读全文

博文 2018-12-06 03:35:16 jonson_jackson

Golang学习笔记-1.4 数据类型

本文系第四篇Golang语言学习教程 在Go语言中,数据类型用于声明函数和变量。 Go语言按类别有以下几种数据分类 序号 类型 描述 1 bool bool类型表示一个布尔值,值为true或false 2 数字类型 整型int和浮点型float32、float64.Go支持整型和浮点型数字,并且原生支持复数。 3 字符串类型 一串固定长度字符连接起来的序列,Go语言中字符串由单个字节连接起来,使用UTF-8编码标识Unicode文本。 4 派生类型 包括:(a) 指针类型(Pointer) (b) 数组类型(c) 结构化类型(struct)(d) Channel 类型(e) 函数类型(f) 切片类型(g) 接口类型(interface)(h) Map 类型 bool bool类型表示一个布尔...阅读全文

博文 2018-07-05 21:35:02 xunk1900

【Go学习笔记】 5、控制语句

指针 Go虽然保留了指针,但与其他编程语言不同的是,在Go当中不支持指针运算以及“->”运算符,而直接采用“.”选择符来操作指针目标对象的成员 操作符 “&”取变量地址,使用“ * ” 通过指针间接访问目标对象 默认值为nil而非NULL 递增递减语句 在Go当中,++与– 是作为语句而并不是作为表达式。 选择语句switch 可以使用任何类型或表达式作为条件语句 不需要写break,一旦条件符合自动终止 如希望继续执行下一个case,需使用fallthrough语句 支持一个初始化表达式(可以是并行方式),右侧需跟分好 左大括号必须和条件语句在同一行 12345678910111213141516171819202122232425262728293031323334353637 func...阅读全文

博文 2017-05-30 05:09:42 HundredLee

Go36-3-代码包

把代码拆分到多个文件 如果代码太复杂,就可以把代码写在多个源码文件里。或者是其他代码包中(这个后面讲) 代码示例 下面是程序的主体,但是其中调用了square()函数,这个函数并没有声明: // Go36/article03/example01/demo.go package main import ( "flag" "fmt" ) var x int func init() { flag.IntVar(&x, "x", 0, "计算平方") } func main() { flag.Parse() res := square(x) fmt.Println(x, "的平方:", res) } 上面用到的square()函数被声明在了另一个文件中: // Go36/article03/exam...阅读全文

博文 2019-01-02 23:35:16 骑士救兵

Go语言实战笔记(十一)| Go 标志符可见性

《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org,第一时间看后续笔记。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。 Go的标志符,这个翻译觉得怪怪的,不过还是按这个起了标题,可以理解为Go的变量、类型、字段等。这里的可见性,也就是说那些方法、函数、类型或者变量字段的可见性,比如哪些方法不想让另外一个包访问,我们就可以把它们声明为非公开的;如果需要被另外一个包访问,就可以声明为公开的,和Java语言里的作用域类似。 在Go语言中,没有特别的关键字来声明一个方法、函数或者类型是否为公开的,Go语言提供的是以大小写的方式进行区分的,如果一个类型的名字是以大写开头,那么其他包就可以访问;如果以小写开头,其他包就不能访问。 123package commontype co...阅读全文

博文 2017-08-26 09:41:31 飞雪无情

go hello world

2. Hello World 建立 Go 工作区 在编写代码之前,我们首先应该建立 Go 的工作区(Workspace)。 在 Mac 或 Linux 操作系统下,Go 工作区应该设置在 $HOME/go。所以我们要在 $HOME 目录下创建 go 目录。 而在 Windows 下,工作区应该设置在 C:\Users\YourName\go。所以请将 go 目录放置在 C:\Users\YourName。 其实也可以通过设置 GOPATH 环境变量,用其他目录来作为工作区。但为了简单起见,我们采用上面提到的放置方法。 所有 Go 源文件都应该放置在工作区里的 src 目录下。请在刚添加的 go 目录下面创建目录 src。 所有 Go 项目都应该依次在 src 里面设置自己的子目录。我们在 s...阅读全文

《Go 语言程序设计》读书笔记 (三) 方法

方法 方法声明 在函数声明时,在其名字之前放上一个变量,即是一个方法。这个附加的参数会将该函数附加到这种类型上,即相当于为这种类型定义了一个独占的方法。 package geometry import "math" type Point struct{ X, Y float64 } // traditional function func Distance(p, q Point) float64 { return math.Hypot(q.X-p.X, q.Y-p.Y) } // same thing, but as a method of the Point type func (p Point) Distance(q Point) float64 { return math.Hypot(...阅读全文

博文 2019-12-24 14:32:42 KevinYan

GoLang 学习笔记 - 运算符

运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 算术运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 15,B 值为 5 。 运算符 描述 实例 + 相加 A + B 输出结果 20 - 相减 A - B 输出结果 10 * 相乘 A * B 输出结果 75 / 相除 B / A 输出结果 3 % 求余 B % A 输出结果 0 ++ 自增 A++ 输出结果 16 -- 自减 A-- 输出结果 14 GoLang 中 ++ 和 -- 操作只可以当成一个语句来使用,不可以作为表达式。这样可以避免很多问题。 a ++ //允许 b = a++ //不允许 即便如此,自增和自减仍然是一种很不规范...阅读全文

博文 2019-07-20 21:32:37 凉丶心园

DAY2 GOLANG(二)运算符和程序流程控制

标识符(命名变量,函数等)一些规范:不能以数字开头,_代表空标识符包名:保持package和目录一致,变量名,函数名,常量名:采用驼峰法首字母大写是公有的,首字母小写是私有的跨包使用,包名+变量名 (与文件名无关)算数运算符/除法 %取余数10/4 =2 10.0/4 =2.5 如果希望保留小数部分被保留,则需浮点型参与运算i++,i-- 自增或者自减只能独立使用 i=i++ 错 i++ 对且golang中只有后加加(或后减减),没有前加加(或前减减)逻辑运算符与: &&(全真为真) 或:|| (有真为真) 非: !&&又称,短路与,如果第一条件为false,则第二条件不会判断,且最终结果为false|| 又称,短路或:,如果第一条件为true,则第二条件不会判断,且最终结果为true赋值运...阅读全文

博文 2019-10-28 18:32:45 aside section._1OhGeD

Types of GoLang

Types of GoLang [TOC] bool Numeric Types int8, int16, int32, int64, int uint8, uint16, uint32, uint64, uint float32, float64 complex64, complex128 byte rune String Bool bool type represents a boolean, either true or false package main import "fmt" func main(){ a := true b := false fmt.Println("boolean a:",a ,"b:",b) c := a && b d := a || b fmt.Prin...阅读全文

博文 2019-07-12 18:32:40 Cease息事

Go 编程:那些隐晦的操作符

文发布于个人站点: GitDiG.com, 原文链接: Go 编程:那些隐晦的操作符 本篇作为 Go 编程“边角料”的最后一篇,主要针对 Go 语言提供的操作符进行一次总结。刚好回应上篇一位读者关于表达式是否要加'.'的问题做个回复。 在 Go 语言中,一共提供了47个操作符,包括标点符号。摘自官方文档,分别是: + & += &= && == != ( ) - | -= |= || < <= [ ] * ^ *= ^= <- > >= { } / << /= <<= ++ = := , ; % >> %= >>= -- ! ... . : &^ &^= 除以上操作符以外,在 Go 语言中还有一个特殊的符号 _, 以及一个非 Go 语言操作符的特殊字节?。 刨去一些常用的操作符,对其中较隐晦...阅读全文

博文 2019-07-17 08:02:46 JayL

golang之Json

1. json字符串解析: json.Unmarshal(b, &f) json字符串解析到结构体中: package main import ( "encoding/json" "fmt" ) type Server struct { ServerName string ServerIP string } type Serverslice struct { Servers []Server } func main() { var s Serverslice str := `{"servers":[{"serverName":"Shanghai_VPN","serverIP":"127.0.0.1"},{"serverName":"Beijing_VPN","serverIP":"127.0...阅读全文

博文 2019-10-14 20:33:34 aside section ._1OhGeD

Golang筑基 ——运算符

golang的运算符同C/C++一样,共有如下几种 算术运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 图片.png 注意: 自增(++)和自减(--)不同于C/C++,a++和++a在golang中是没有区别的,同理,a--和--a也是如此。我觉得这也是golang方便之处,去除一些没必要功能设计,让语言本身更便捷。 关系运算符 下表列出了所有Go语言的关系运算符。假定 A 值为 10,B 值为 20。 图片.png 逻辑运算符 下表列出了所有Go语言的逻辑运算符。假定 A 值为 True,B 值为 False。 图片.png 位运算符 位运算符对整数在内存中的二进制位进行操作。 下表列出了位运算符 &, |, 和 ^ 的计算: 图片.png 赋值运算符...阅读全文

博文 2020-04-13 21:32:49 技术修仙

5.2.5Golang的运算符

目录:https://www.jianshu.com/p/e406a9bc93a9 运算符 golang的运算符有五种: 1.算术运算符 2.比较运算符 3.逻辑运算符 4.位运算符 5.赋值运算符 算术运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 例子: var ( a = 5 b = 2 ) // 算术运算符 fmt.Println("a + b:",a + b) fmt.Println("a - b:",a - b) fmt.Println("a * b:",a * b) fmt.Println("a / b:",a / b) fmt.Println("a % b:",a % b) a ++ // go语言中的 ++ -- 是一个单独的语句 fmt.Print...阅读全文

博文 2020-03-16 17:32:56 寒暄_HX

小浩算法|一文让你学会如何用代码判断"24"点

“24点”是一种数学游戏,正如象棋、围棋一样是一种人们喜闻乐见的娱乐活动。它始于何年何月已无从考究,但它以自己独具的数学魅力和丰富的内涵正逐渐被越来越多的人们所接受。今天就为大家分享一道关于“24点”的算法题目。 话不多说,直接看题。 题目:你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。 示例 1:输入: [4, 1, 8, 7] 输出: True 解释: (8-4) * (7-1) = 24 示例 2: 输入: [1, 2, 1, 2] 输出: False 注意: 除法运算符 / 表示实数除法,而不是整数除法。例如 :4 / (1 - 2/3) = 12 。 每个运算符对两个数进行运算。特别是我们不能用 - 作为一元运算符。例如,[...阅读全文

博文 2020-02-26 10:32:42 宜信技术学院

Go-002 基本语法

1 hello world 1.1 代码 package main import "fmt" func main() { fmt.Println("hello world") } 1.2 执行 // 方法1 编译并执行 go run ./test002.go // 方法2 先构建后执行 go build ./test002.go // 构建 ./test002 // 执行 2 代码语法要素 2.1.语句 statement,构成源代码最基本的逻辑单位。 2.2.语句结束符 语句是需要结束的,所以需要语句结束符,标准的语句结束符为分号( ; )。 在 Go 的源代码中,绝大多数的情况可以省略语句结束符。从 go 的编译器的角度,会自动添加语句结束符。自动添加的情况为: 标识符(各种名字):如变...阅读全文

博文 2020-02-22 15:32:52 LikePlayAPiano

聊聊在Go语言里使用继承的翻车经历

Go不是面向对象的语言,但是使用组合、嵌套和接口可以支持代码的复用和多态。关于结构体嵌套:外层结构体类型通过匿名嵌套一个已命名的结构体类型后就可以获得匿名成员类型的所有导出成员,而且也获得了该类型导出的全部的方法。比如下面这个例子: type ShapeInterface interface { GetName() string } type Shape struct { name string } func (s *Shape) GetName() string { return s.name } type Rectangle struct { Shape w, h float64 } 复制代码Shape类型上定义了GetName()方法,而在矩形Rectangle的定义中匿名嵌套了Sha...阅读全文

博文 2020-04-20 13:34:22 kevinyan

如何使用CSS选择所有子元素?

如何使用CSS递归选择所有子元素?下面本篇文章就来给大家介绍一下使用CSS递归选择所有子元素的方法,希望对大家有所帮助。 原文地址:如何使用CSS选择所有子元素?当元素是某个元素的子元素时,可以使用子选择器匹配,该选择器选择特定父级的所有子元素。子选择器由两个或多个由“>”分隔的选择器组成;它也称为element > element选择器。注:子选择器只能选择自己的子类,第二级元素,而不能选择第二级别以下的元素。语法:选择指定元素的所有指定子元素element1 > element2如果想要递归选择所有子元素,则使用以下语法 element1 > * { // CSS样式 } 示例1:选择所有子元素 阅读全文

博文 2020-03-20 21:32:48 yanghs

6.运算符

Go语言基础之运算符 | Golang 运算符用于在程序运行时执行数学或逻辑运算。 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 注意: ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符。 关系运算符 运算符 描述 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 < 检查左边值是否小于右边值,如果...阅读全文

博文 2020-04-05 13:32:48 雪上霜

【Golang 基础】Go 语言的数组

Go 语言中的数组 定义数组的格式:var [n], 其中 n >= 0; package basic import "fmt" func DeclaratArray(){ // 定义指定长度的数组 var arr1 [5]int fmt.Println(arr1) // [0 0 0 0 0] // 不设置数组长度 arr2 := [...]int{} fmt.Println(arr2) // [] // 定义指定长度的数组,并赋值 arr3 := [2]int{ 1, 5 } fmt.Println(arr3) // [1 5] } 通过 new 关键字声明数组,返回一个指向该数组的指针; package basic import "fmt" func...阅读全文

博文 2019-03-26 02:34:42 爱写作的程序猿

【Go】类似csv的数据日志组件设计

文链接:https://blog.thinkeridea.com/... 我们业务每天需要记录大量的日志数据,且这些数据十分重要,它们是公司收入结算的主要依据,也是数据分析部门主要得数据源,针对这么重要的日志,且高频率的日志,我们需要一个高性能且安全的日志组件,能保证每行日志格式完整性,我们设计了一个类 csv 的日志拼接组件,它的代码在这里 datalog。 它是一个可以保证日志各列完整性且高效拼接字段的组件,支持任意列和行分隔符,而且还支持数组字段,可是实现一对多的日志需求,不用记录多个日志,也不用记录多行。它响应一个 []byte 数据,方便结合其它主键写入数据到日志文件或者网络中。 使用说明 API 列表 NewRecord(len int) Record 创建长度固定的日志记录 N...阅读全文

博文 2019-07-21 12:02:36 thinkeridea

4. 类型

4. 类型 下面是 Go 支持的基本类型: bool 数字类型 int8, int16, int32, int64, int uint8, uint16, uint32, uint64, uint float32, float64 complex64, complex128 byte rune string bool bool 类型表示一个布尔值,值为 true 或者 false。 package main import "fmt" func main() { a := true b := false fmt.Println("a:", a, "b:", b) c := a && b fmt.Println("c:", c) d := a || b fmt.Println("d:", d) ...阅读全文

博文 2019-08-29 11:32:56 泷汰泱

图解kubernetes服务打散算法的实现源码

在分布式调度中为了保证服务的高可用和容灾需求,通常都会讲服务在多个区域、机架、节点上平均分布,从而避免单点故障引起的服务不可用,在k8s中自然也实现了该算法即SelectorSpread, 本文就来学习下这个算法的底层实现细节 1. 设计要点 1.1 zone与node zone即代表一个区域,node则是一个具体的节点,而该打散算法的目标就是将pod在zone和node之间进行打散操作 1.2 namespace namespace是k8s中进行资源隔离的实现,同样的筛选也是如此,在筛选的过程中,不同namespace下面的pod并不会相互影响 1.3 计数与聚合 SelectorSpread算法是scheduler中优先级算法的一种,其实现了优先级算法的map/reduce方法,其中ma...阅读全文

博文 2020-01-19 14:34:19 代码仔

图解kubernetes服务打散算法的实现源码

在分布式调度中为了保证服务的高可用和容灾需求,通常都会讲服务在多个区域、机架、节点上平均分布,从而避免单点故障引起的服务不可用,在k8s中自然也实现了该算法即SelectorSpread, 本文就来学习下这个算法的底层实现细节 1. 设计要点 1.1 zone与node zone即代表一个区域,node则是一个具体的节点,而该打散算法的目标就是将pod在zone和node之间进行打散操作 1.2 namespace namespace是k8s中进行资源隔离的实现,同样的筛选也是如此,在筛选的过程中,不同namespace下面的pod并不会相互影响 1.3 计数与聚合 SelectorSpread算法是scheduler中优先级算法的一种,其实现了优先级算法的map/reduce方法,其中ma...阅读全文

LeetCode|371. 两整数之和

题目描述 等级: 简单 不使用运算符 + 和 - ,计算两整数a 、b之和。 示例1: 输入: a = 1, b = 2 输出: 3 示例2: 输入: a = -2, b = 3 输出: 1 思路 对于位运算的考察。 在位运算中,异或操作获取的是两个数的无进位和,异或:相同为0,不同为1。如, 2^3 0010 ^ 0011 ------- 0001 我们知道,2+3=5,5的二进制是0101。前面已经知道了无进位和,下面获取进位的数:看a&b 2&b 0010 & 0011 -------- 0010 发现结果左移1位就是最终结果的进位数: 0010 << 1 = 0100 0100再异或0001: 0100 ^ 0001 ------- 0101 这样循环操作,直到进位数为0。 答案 f...阅读全文

博文 2019-12-06 11:32:40 clawhub

Golang 基础数据类型(一)

基础数据类型 在Go语言中,数据类型用于声明函数与变量、常量数据的类型,声明何种数据类型主要是为了提高内存的利用率,因为不同的数据类型在内存所需要的空间大小是不一样的。 Golang内置基础数据类型如下表所示: 数据类型名称 类型和描述 boolean 布尔型,值可以是常量true或false int&uint 带符号和无符号两种整型。int8,int16,int32(rune),int64和uint8(byte),uint16,uint32,uint64。uintptr类型在指针小节中单独介绍。 float32&float64 Golang没有float这种类型,只有float32和float64两种类型 complex64&complex128 复数类型,complex64包含float...阅读全文

每天一点Go语言——变量、常量、运算符解析

每天一点Go语言——变量、常量、运算符解析 前言 ​ 前面简单说过有关Go语言的基础语法及其数据类型,大致上了解了Go语言程序的组成,而本文将讲述近乎所有编程语言都涉及的变量、常量以及运算符相关内容。 一、变量 何为变量? ​ 对该专业名词解释:计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。Go语言中的变量由字母、数字、下划线组成,首字母不可以为数字。耳熟能详了哈~ ​ 笔者的理解:我编写程序的时候需要使用一个值,并且我一直想要重复使用,而且有时候这个值会发生变化等等,所以我需要声明一个变量来被这个值赋之。 怎么声明变量? 变量声明一般格式: var 变量名 变量类型 var:变量声明关键字,表示声明变量 其次是变量的名字,最后是变量的类型(如int) 当然也有其他的...阅读全文

博文 2020-04-04 15:33:12 wx5d8a17c45cb5b

Go-004 常量

1 概述 一旦定义,其值不可更改的量,称之为常量。也是常量标识符和常量值。 常量用于存储简单数据类型:数值,字符串。 2 定义 语法:const c1 string = “GoLang” 语法上,支持批量定义,支持类型推导: const ( c1 int = 42 c2 = 42 c3 = "golang" ) fmt.Println(c1,c2,c3) 注意: 批量定义,若 后边的只写常量名,则代表和上一个一致 const ( c1 = 42 c2 c3 ) fmt.Println(c1,c2,c3) // 42 42 42 3 使用常量的意义 防止被无意的修改。 将特定的数据语义化。 例如错误处理,使用不同的数值,表示不同的错误级别,如下所示: // 1023 表示全部的错误级别 // ...阅读全文

博文 2020-02-22 15:32:50 LikePlayAPiano

Golang 学习笔记:程序结构

Go语言的程序元素 Go语言包含了五种程序符号,分别是标识符(identifier)、关键字(keyword)、运算符(operator)、分隔符(delimiter)与字面量(literal)。这五种程序元素组合成各种表达式和语句。 标识符标识符是用于标识变量、函数或任何用户自定义项目的名称(程序实体) 标识符可分为两类,一类是用户定义的标识符,作为程序实体存在;另一类是预定义标识符,它们在Go语言中的源代码被声明(如数据类型)。还有一个特殊的标识符,叫空标识符,记作 "_",一般用在变量声明与包的导入中。例如,在Go语言程序中,若存在一个没有使用的变量a,那么编译时就会报错,因为Go语言要求存在的程序实体必须被使用,这时就可以使用这样一句 _=a 的代码,编译器就会认为已经使用了变量a(...阅读全文

博文 2020-06-03 13:32:41 sunlingbot

python3.8版本已经更新,数据分析师和数据开发者看过来

python3.8版本已经更新,数据分析师和数据开发者看过来 新版本python3.8已经发布 作为一个放弃java转投python很多年的数据开发者,已经好久没有更新python了,也很久没有关注python的一些新功能新特性了,去年把自己做的几个小项目更新到了python3.6,然后就一直没把精力放到这一块了。 今天因为安装一个第三方库失败,打算去官网看下python的更新情况,发现已经更新至python3.8.2了,那么就当机立断下载安装,顺便学习一下python3.8的新特性吧。 安装python3.8.2 windows下的安装很简单,直接下载msi安装文件双击就可以了,然后稍微配置一下环境变量。 Linux下稍微复杂一点,主要是因为没有合适的yum安装包,具体步骤如下: # 下载...阅读全文

博文 2020-04-08 07:32:44 数据驱动手记

leetcode_622

Golang: 思路:直接用数组实现了,感觉有点不太符合题意 代码如下: type MyCircularQueue struct { stack []int length int } /** Initialize your data structure here. Set the size of the queue to be k. */ func Constructor(k int) MyCircularQueue { return MyCircularQueue{ stack:[]int{}, length:k, } } /** Insert an element into the circular queue. Return true if the operation is succe...阅读全文

博文 2020-04-02 09:32:58 淳属虚构

leetcode_68

Golang: 思路:刚开始看题会觉得有些麻烦,但实际上,也没啥技巧,就是处理字符串 代码如下: func fullJustify(words []string, maxWidth int) []string { var wordlist []string var res []string j,length:=0,0 for jmaxWidth{ //结束,处理wordlist handleWordList(wordlist...阅读全文

博文 2020-03-23 19:32:47 淳属虚构

leetcode_1002

Golang: 思路:每个字符串进行比较即可 代码如下: func commonChars(A []string) []string { arr1:=make([]int,26) for k,w:=range A{ arr2:=make([]int,26) for _,b:=range w{ arr2[b-'a']++ } if k==0{ copy(arr1,arr2) }else{ for k,_:=range arr1{ arr1[k]=min(arr1[k],arr2[k]) } } } var res []string for k,v:=range arr1{ for i:=0;i阅读全文

博文 2020-04-15 09:32:45 淳属虚构