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

golang 基本词法

在编程语言中,词法是代码的构成法则。也就是说,词法规定了我们敲入怎样的字符才能编写出编译器 能够识别的代码,所以要掌握一门语言,那么语言的词法是我们要学习的第一步,Go语言也不过如此。源代码表示Go语言的代码是由若干Unicode字符组成,Unicode编码规范是一种在计算机上使用的字符编码 方式,它为世界上存在的各种语言的每个字符都设定了统一且唯一的二进制编码。因此,它能够满足跨语言、 跨平台的转换和文本处理需求,关于Unicode更详细说明,参见官网 Unicode。 当前,你只需要记住一条规则:Go语言的源代码是由Unicode编码规范的UTF-8格式进行编码的。注释- 行注释: 用两斜杠"//"开始到这一行结束 - 块注释: 从"/*" 开始到 "*/"结束Go语言的词法元素包括4类...阅读全文

博文 2017-02-10 10:21:45 100018

golang语言构造函数

1、构造函数定义 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。 而golang没有相关的构造函数定义,只能通过new来创建构造函数。 2、构造函数声明 声明一个struct结构: 声明一个全局函数,返回*struct ok,到此已经构造函数定义完...阅读全文

博文 2016-09-12 12:00:32 迪克猪

Go语言学习笔记(七)之方法

在面对对象编程(OOP),我们常把某个对象实现的具体行为的函数称作方法。例如 C++中A类的某个函数实现了某种行为,我们就叫做 A 的方法。在 golang 中如果要定义一个方法,只需要在函数声明时,在函数名前加上某个变量,即该变量实现了某个方法。 ##### 方法声明 ```go type Point struct{ X, Y float64 } //按照传统方法,我们可能会按照下面的方式来写 func Distance(p, q Point) float64 { return math.Hypot(q.X - p.X, q.Y - p.Y) } //但在 go 语言中则是这样 func (p Point) Distance(q Point) float64 { return math.H...阅读全文

博文 2019-04-13 16:19:16 goelo

字符串函数在golang中的使用

package main import ( "fmt" "strings" ) func main() { //判断父字符串是否包含子字符串,包含为真,否则为假 fmt.Println("-------------------------------") fmt.Println("contains Function:", strings.Contains("Austrilia", "lia")) fmt.Println("contains Function:", strings.Contains("Austrilia", "mia")) //子字符串在父字符串中出现的次数 fmt.Println("-------------------------------") fmt.Println("...阅读全文

博文 2019-03-05 15:36:20 PowerMichael

golang goquery selector(选择器) 示例大全

本文为原创文章,转载注明出处,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。 最近研究Go爬虫相关的知识,使用到goquery这个库比较多,尤其是对爬取到的HTML进行选择和查找匹配的内容时,goquery的选择器使用尤其多,而且还有很多不常用但又很有用的选择器,这里总结下,以供参考。 如果大家以前做过前端开发,对jquery不会陌生,goquery类似jquery,它是jquery的go版本实现。使用它,可以很方便的对HTML进行处理。 基于HTML Element 元素的选择器这个比较简单,就是基于a,p等这些HTML的基本元素进行选择,这种直接使用Element名称作为选...阅读全文

GoLang - 基础语法

行分隔符   在 GoLang 中, Go 编译器会逐行识别并编译,因此每个语句不需要像类C语言哪样以 ; 结尾,因为这些工作都将由自动完成。一行代表一个语句结束,如果你打算将多个语句写在同一行,它们则必须使用 ;分号进行区分,但在实际开发中我不建议大家这样做。   以下为两个语句: fmt.Println("Hello, World!") fmt.Println("Hello, GoLang!")   若两条语句非要在同一行则要写成: fmt.Println("Hello, World!"); fmt.Println("Hello, GoLang!") 标识符   标识符用来命名变量、函数等可创建的数据类型程序实体。一个标识符实际上就是一个或是多个字母 (A~Z & a~z) 、数字 (0...阅读全文

博文 2019-07-20 08:32:44 凉丶心园

golang leetcode 1106 解析布尔表达式

根据题意我们可以知道,一个运算符一定会跟随一对括号,比如 !(t)。 所以我们可以直接判断expression[0],得到最外层的运算符,根据运算符处理内层的表达式。 如果不是运算符,肯定就是 't'或者 'f' 直接判断即可 如果是't',里面要么就是单一的字符,要么就是一个新的表达式。再调用parseBoolExpr解析并取反即可。 如果是 '&' 或者 '|', 需要对里面每个表达式分别求解。通过括号匹配,拿到第一个'('匹配的')'里面的表达式,再通过 parseBoolExpr 计算出值。 在计算 '&' 的时候,如果有一个值为false,可以提前结束计算。同理,在计算'|'时, 如果有一个值为true,也可以提前结束计算。 完整代码见下: func parseBoolExpr(e...阅读全文

博文 2019-07-03 13:32:41 Tibbersshao

Go语言开发常见陷阱

Go作为一种简便灵巧的语言,深受开发者的喜爱。但对于初学者来说,要想轻松驾驭它,还得做好细节学习工作。 初学者应该注意的地方: 大括号不能独立成行。 未使用变量错误——对于全局变量和函数参数变量,是可以定义后不使用的。但是对于函数内部变量来说,如果进行定义后不进行使用,编译器会提示错误。 导入包未调用错误——导入包后,如果不进行调用,例如函数,接口,结构及变量等对象,那么会出现编译错误。这里建议使用空白表示符“_”来避免类似错误。 变量简写只适用于函数内部。 重新定义变量要使用简写声明——你不能在一个独立的语句中重新定义一个变量,但在复合变量场合是允许的。重新定义的变量需存在于同一区块,否则会产生一个阴影变量。 意外的变量——变量简写语法由于十分简便,因此很容易会把它作为一个常规的指派操作。...阅读全文

博文 2017-02-10 12:21:17 谢权

Go与用户交互demo

大学里大家应该基本上都写过一些和控制台进行交互的课后作业,下面是一个go版本的简单交互程序。 package main import ( "bufio" "fmt" "os" ) func main() { in := bufio.NewReader(os.Stdin) // 声明并初始化读取器 fmt.Println("What is your name?") input, err := in.ReadString('\n') // 以回车为分隔符 if err != nil { fmt.Printf("oh, get error: %v\n", err) return } name := input[:len(input)-1] // 去除回车 fmt.Printf("Hello, %s...阅读全文

博文 2020-02-25 13:32:43 iuoui

Go 中的等效类型

![cover](https://raw.githubusercontent.com/studygolang/gctt-images/master/identical-type/cover.jpg) [Go 语言中的可赋值性(Assignability in Go)](https://studygolang.com/articles/12381)的第一个例子提到: > 如果右边的类型和 T 等价,那么赋值是完全可以(进行)的。 这可能听起来不值一提,但是有一些细节(值得注意)。深入这个主题可能同样有助于理解语言其它相关的基础概念。 ## 类型声明 有一个特殊的语句能够创建一个新的类型,那就是使用 type 关键字: ```go type A struct{ name string } typ...阅读全文

博文 2018-03-21 10:02:08 polaris

golang学习之struct

结构体定义的一般方式如下: type identifier struct { field1 type1 field2 type2 ... } type T struct {a, b int} 也是合法的语法,它更适用于简单的结构体。 var t *T t = new(T) 变量 t 是一个指向 T的指针,此时结构体字段的值是它们所属类型的零值,使用 new 函数给一个新的结构体变量分配内存,它返回指向已分配内存的指针。 无论变量是一个结构体类型还是一个结构体类型指针,都使用同样的 选择器符(selector-notation) 来引用结构体的字段,即: type myStruct struct { i int } var v myStruct // v是结构体类型变量 var p *mySt...阅读全文

博文 2016-11-08 13:00:12 caiyezi

[用Golang刷LeetCode之 1] 461. Hamming Distance

题目描述 https://leetcode.com/problems/hamming-distance/description/ The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note: 0 ≤ x, y< 2^31. Example: Input: x = 1, y = 4 Output: 2 Explanation: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ The abo...阅读全文

博文 2017-08-14 09:05:02 miltonsun

Go语言学习笔记(七)之方法

在面对对象编程(OOP),我们常把某个对象实现的具体行为的函数称作方法。例如 C++中A类的某个函数实现了某种行为,我们就叫做 A 的方法。在 golang 中如果要定义一个方法,只需要在函数声明时,在函数名前加上某个变量,即该变量实现了某个方法。 方法声明 type Point struct{ X, Y float64 } //按照传统方法,我们可能会按照下面的方式来写 func Distance(p, q Point) float64 { return math.Hypot(q.X - p.X, q.Y - p.Y) } //但在 go 语言中则是这样 func (p Point) Distance(q Point) float64 { return math.Hypot(q.X-p.X...阅读全文

博文 2019-04-13 16:34:40 程序员Morgan

聊聊在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的定义中匿名嵌套了Shape类型...阅读全文

博文 2020-04-20 13:32:43 Kevin

位运算

位运算思考题 func main() { var a int = 1 >> 2 //位右移 var b int = -1 >> 2 var c int = 1 << 2 //位左移 var d int = -1 << 2 //a,b,c,d 结果是多少 fmt.Println("a=", a) fmt.Println("b=", b) fmt.Println("c=", c) fmt.Println("d=", d) } func main() { fmt.Println(2&3) //位与 fmt.Println(2|3) //位或 fmt.Println(13&7) fmt.Println(5|4) //? fmt.Println(-3^3) //?//位异或 } 原码、反码、补码 对于...阅读全文

博文 2019-02-19 12:34:42 StevenQin

golang基础

1、程序实体与关键字 在Go语言中,变量、常量、函数、结构体和接口被统称为“程序实体”,而它们的名字被统称为“标识符”。 标识符可以是任何Unicode编码可以表示的字母字符、数字以及下划线“_”。不过,首字母不能是数字或下划线。 标识符首字母大写为公有,小写为私有。 Go语言的关键字如下表: ![image.png](https://static.studygolang.com/180414/3cb912f4148300290a8f151ced7d7e1c...阅读全文

Go语言学习笔记02--go语言运算符与流程控制分支语句

1.并发概念概述 并发指的是同一时间的多次访问。解决并发途径一般就是创建多个服务器去分流访问, 对于服务器而言,响应速度越快那么并发量肯定就越高。 或者是通过语言逻辑来解决分流。go语言对于并发天生支持性就非常好 ps:打开mac系统终端快捷方式 cmd+space ps:查看go安装版本 go version 2.字符和字符串的区别 1)转义字符 go语言中使用\反斜线表示转义字符,\反斜线配合其他的字符进行组合能够在字符串中拥有特殊的含义 例如: \n 换行 \r 回车 \\ 输出单一反斜线 \" 双引号 \0 字符串结束符号 ps:在很多语言中\'转义字符都用来表示单引号,但是在go语言中却并不存在这样的转义字符。 其原因是因为在go语言中''单引号是用来表示字符的,并不能用于创建字符...阅读全文

博文 2018-11-29 19:41:24 FrankAdd

04Go基本语法

Go基本语法 [TOC] 1、运算符 Go 语言内置的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符。 (1)算数运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 ++ 自增 -- 自减 (2)关系运算符 运算符 描述 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 < 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 <= 检查左边值是否小于等于右边值,如果...阅读全文

Golang GC导致的文件描述符不可用

现象1. 压力测试时,使用syscall.Accept得到 bad file descriptor,server直接无法响应。原因1. syscall.Accept使用的fd来源是在自己代码初试化的时候通过TCPListener.FIle().Fd()直接拿到,且在自己的代码中通过int 类型保存了这个返回的系统fd,后续直接使用int 类型存储的fd值进行epoll相关操作2.事实上Golang 的实现实现中TCPListener.FIle() 返回的*os.FIle不是TCPListener原有的*os.File对象,而是dup(拷贝)一份,同时这个dup动作中会使用系统调用对于原来的系统fd也执行一次dup,进而生产一份新的额系统fd3.TCPListener.FIle().Fd() ...阅读全文

博文 2019-07-07 01:02:39 luofanyuguai

Golang中位运算的详细理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kwame211/article/details/79193164 前言: 位运算可能在平常的编程中使用的并不多,但涉及到底层优化,一些算法及源码可能会经常遇见。今天就学习一下常用的位运算 一、常用的位运算: & 与 AND | 或OR ^ 异或XOR &^ 位清空 (AND NOT) << 左移 >> 右移 二、位运算的用法: 位运算都是在二进制的基础上进行运算的,所以在位运算之前要先将两个数转成二进制 1. & & 只有两个数都是1结果才为1 例:var i uint8 = 20 var j uint8=15 求i&j i转成二进制为0001 0100, j转成二进制为0000 1111 0...阅读全文

博文 2019-01-14 14:31:35 kwame211

Java零基础入门

课程介绍 本课程主要讲解JavaSE的发展历史,JDK开发环境的搭建,CLASSPATH属性作用,Java程序基本结构、基本数据类型的划分及使用、程序结构、方法的定义与使用,本课程是作为Java系列课程的初期课程,掌握本课程之后可以继续学习Java高级开发部分。 课程目标 • 掌握java基础 适合人群 • 0起点学员 课时列表 • 课时1:【Java摸底自测】10道题测测你的Java底子 • 课时2:Java简介(Java发展概述) • 课时3:Java简介(Java主要特点) • 课时4:JDK的安装与配置 • 课时5:第一个Java程序 • 课时6:CLASSPATH环境属性 • 课时7:Java程序基本...阅读全文

GoLand中的指针操作 * 和 &

&和*这可能是Go中最令人困惑的事情之一。基本上你需要了解3个案例: &操作符 当你想获得变量的内存地址时,应该把&放到变量前面 *操作符 进入一个包含内存地址的变量并解析它,需要放到变量前面(因此它与&运算符相对应)。*它会指向指针指向的东西,例如myString。 myString := "Hi" fmt.Println(*&myString) // prints "Hi" 或更有用的,像 myStructPointer = &myStruct // ... (*myStructPointer).someAttribute = "New Value" * 在一个类型前面 当*放在类型前面时,例如*string,它成为类型声明的一部分,因此您可以说“此变量包含指向字符串的指针”。 所以令人...阅读全文

博文 2019-02-25 15:34:44 杨周龙

Golang——运算符和格式化输出

运算符 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符 算术运算符 + 相加 - 相减 * 相乘 / 相除 % 求余 ++ 自增 -- 自减 func main(){ a := 2 b := 7 fmt.Println(a + b) //9 fmt.Println(a - b) //-5 fmt.Println(a * b) //14 fmt.Println(a / b) //0 fmt.Println(a % b) //2 a ++ fmt.Println(a) //3 b -- fmt.Println(b) //6 } 注意:由于Go语言没有自动类型转换,因此运算必须是同一种类型,否则编译出错 invalid operation: a + b (mismatched...阅读全文

博文 2020-05-14 08:32:44 Cici冬雪

Golang 源码剖析:fmt 标准库 -- Print* 是怎么样输出的?

文地址:Golang 源码剖析:fmt 标准库 前言 package main import ( "fmt" ) func main() { fmt.Println("Hello World!") } 标准开场见多了,那内部标准库又是怎么输出这段英文的呢?今天一起来围观下源码吧 ???? 原型 func Print(a ...interface{}) (n int, err error) { return Fprint(os.Stdout, a...) } func Println(a ...interface{}) (n int, err error) { return Fprintln(os.Stdout, a...) } func Printf(format string, a ......阅读全文

博文 2018-12-04 22:34:43 EDDYCJY

Go基础(幕客网视频学习笔记)

go语言的特性 golang是一门开源的编程语言,2007年诞生,2009年11月开始开源。 golang的特点 运行效率高:go是一门编译性的语言,程序再开发完成之后只需要编译一次,后续不需要进行编译。 开发效率高,语法比较少,关键字比较少,开发的风格比较简单,限制比较简单 部署简单:直接把编译后的文件放到服务器上就能发布服务 实现多核并发:通过go语言的关键字 内置runtime:介于go语言和系统之间的,可以进行性能监控和GC问题排查 强大的标准库和网络库 内置强大的gofmt,统一代码风格 golang的应用 服务器编程、虚拟机处理、文件系统、数据打包、处理日志 分布式系统、数据库代理、中间件 网络编程、API应用 云平台 golang的环境搭建和IDE的安装 golang语言的目录...阅读全文

博文 2019-01-02 12:34:45 木鱼cavalry

Golang学习笔记3——常量与运算符

1.常量的定义 常量的值在编译时就已经确认 常量的定义格式与变量基本相同 等号右侧必须是常量或者常量表达式 常量表达式中的函数必须是内置函数 //定义单个常量 const a int = 1 const b = "A" const ( text = "123" length = len(text) num = b * 20 ) //同时定义多个变量 const i, j, k = 1, "2", "3" const ( text2 ,length2, num2 = "456", len(text2), k* 10 ) 2.常量的初始化规则 在定义常量组时,如果不提供初始值,则表示使用上行的表达式 var a = 1 const ( b = a //此时报错,因为全局变量在编译时不能确定值,常...阅读全文

博文 2017-10-22 09:04:44 MarksGui

Golang基础语法1

打开cmd命令窗口 保存,编译,执行: 1.保存到一个×××.go的文件(我这里保存到 E:\GoTest\hello.go 下) 2.编译,在命令提示符中执行命令: go build -o E:\GoTest\hello.exe E:\GoTest\hello.go 在指定目录下生成 .exe 文件 或者 go build E:\GoTest\hello.go 在当前目录下生成 .exe 文件 (注意:上面一条指定了输出的exe文件存在E:\GoTest, 而下面一条会在当前路径下生成hello.exe(可能会不是 E:\GoTest 的位置)) 3.执行,在命令提示符中执行命令: test.exe 就可以看到屏幕上显示的HelloWorld!字样...阅读全文

Go语言基础之开发环境、数据类型、运算符

开发环境搭建 go官网 https://golang.org/ 下载 https://golang.org/dl/ 下载 go1.11.2.windows-amd64.msi安装包,双击安装即可。 IDE工具 IntelliJ IDEA 安装go插件 File-Setting-Pluigns,检索go,点击install即可安装,安装成功后重启即可完成 go pluign 新建Go项目 File-New-Project,选择Go,填写项目信息 新建Go项目 填写项目名称,选择项目保存目录,点击Finish即可 项目信息 新建Go File,选择File-New-Go File Go File 完成简单的Hello world输出 /**包声明*/ package main //引入包 imp...阅读全文

博文 2018-11-24 19:34:41 梁朋举

Golang 源码剖析:fmt 标准库 --- Print* 是怎么样输出的?

Golang 源码剖析:fmt 标准库 --- Print* 是怎么样输出的? 前言 package main import ( "fmt" ) func main() { fmt.Println("Hello World!") } 标准开场见多了,那内部标准库又是怎么输出这段英文的呢?今天一起来围观下源码吧 ???? 原型 func Print(a ...interface{}) (n int, err error) { return Fprint(os.Stdout, a...) } func Println(a ...interface{}) (n int, err error) { return Fprintln(os.Stdout, a...) } func Printf(form...阅读全文

博文 2019-03-26 09:31:21 EDDYCJY

《Go语言四十二章经》第十章 string

《Go语言四十二章经》第十章 string 作者:李骁 ## 10.1 有关string Go 语言中的string类型存储的字符串是不可变的, 如果要修改string内容需要将string转换为[]byte或[]rune,并且修改后的string内容是重新分配的。 那么byte和rune的区别是什么(下面写法是type别名): ```go type byte = uint8 type rune = int32 ``` string 类型的零值为长度为零的字符串,即空字符串 ""。 一般的比较运算符(==、!=、<、<=、>=、>)通过在内存中按字节比较来实现字符串的对比。你可以通过函数 len() 来获取字符串所占的字节长度,例如:len(str)。 字符串的内容(纯字节)可以通过标准索引...阅读全文

博文 2018-09-26 20:07:40 roteman

Windows ECS上如何以正确的姿势配置FTP Server使用NAS

摘要: 如何在Windows ECS上正确配置FTP,使FTP用户可以访问ECS上挂载的NAS文件系统。 以下配置以Windows2008 + FileZillaServer为例,介绍如何在Windows ECS上配置FTP服务器,并将NAS文件系统输出给FTP的用户。 (以下内容假设用户已经安装FileZillaServer) 第一步:配置FTP Service以指定用户运行。 由于用户挂载NAS的一般是当前登录用户,比如Administrator,但默认FileZillaServer是以”SYSTEM”用户运行,Windows默认对于挂载的NAS映射的盘符(比如Z:)是对不同用户隔离的,因此为了让FTP服务程序可以访问NAS,需要配置FTP服务以相同的用户...阅读全文

【Go语言】【15】GO语言的面向对象

GO是不是面向对象的语言?GO作者如是说:“是,也不是。”正如前面所说:GO是一种面向类型的语言,它有类型和方法,但没有类的概念,程序员可以用一种面向对象的风格(或者说是方式)来编程,下面我们从封装性、继承性和多态性三大面向对象的特性谈谈GO语言1、封装性 面向对象的语言中,“类”是基本单位,它把属性、方法局限在“类”中,并对外提供公共方法让使用者操作对象。当然这一过程离不开修饰符:public、protected、private等。 GO语言如何实现封装性呢?它是通过结构体(struct)和为类型添加方法的方式实现的。 例如,封装一个矩形(Rect)类,试想调用者会对矩形类做什么操作呢?无非就是看看它的面积、周长之类的信息,那么按照面向对象的编程思想来说,只要向使用者暴露getArea()...阅读全文

博文 2017-02-09 16:00:01 qingkechina

初识Golang

//今天第一次看Golang,作为初学者总结一下 为什么是GO 年轻,它的诞生必然有他的意义,根据大家对他的介绍,总结下来如下:Go 语言对于高性能分布式系统领域而言,无疑比大多数其它语言有着更高的开发效率,Go语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制,用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。 Go代码编译成机器码不仅非常迅速,还具有方便的垃圾回收机制和强大的运行时反射机制。它是一个快速的、静态类型的编译型语言。以上是对他的介绍,那么我就感兴趣了,我打算研究一番,学习学习 //今天简单了解了基础语法 基础组成 package main import "fmt" func main() { fmt.Println("...阅读全文

博文 2018-01-28 21:34:37 zxhaaa

Golang学习笔记-变量,常量,运算符

变量 Go变量命名和C语言一样,由字母、数字、下划线组成,其中首个字符不能为数字,声明变量的形式为: var identifier type var identifier1, identifier2 type 例如: var strValue string var intValue1,intValue2 int 如果没有初始化,则变量默认为零值(数值类型为0,布尔类型为false,字符串为空字符串,指针,数组,函数等为nil)。 当有初始值时可不指明类型,这个时候编译器会根据值自行推断类型。 var strValue="hello" var intValue1=2 使用初始值声明变量且不指明类型时可省略var,将=替换为:=,:=左边的变量必须是未声明过的。 strValue := "hel...阅读全文

博文 2019-09-27 23:33:01 aside section ._1OhGeD

Go语言学习之path/filepath包

import “path/filepath” 作用: Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths. 常量 const ( Separator = os.PathSeparator ListSeparator = os.PathListSeparator ) ToSlash func ToSlash(path string) string 1 ToSlash returns the result of replacing each separa...阅读全文

golang 字符串

//判断字符串 s 是否以 prefix 开头 var str string = "This is, an example of a string " hasprefix := strings.HasPrefix(str, "Th") fmt.Println(hasprefix) //判断字符串 s 是否以 suffix 结尾 suffix := strings.HasSuffix(str, "ig") fmt.Println(suffix) //判断字符串 s 是否包含 substr constains := strings.Contains(str, "wxc") fmt.Println(constains) //判断子字符串或字符在父字符串中出现的位置 index := strings...阅读全文

博文 2020-05-31 09:32:47 对方正在输入_5723

Go 字符串处理

直接使用“+”: 示例: a := "aa" b := "bb" a = a + b fmt.Println(a) 因为字符串类型在Go中是不可改变的,因此每次操作实际都要新分配字符串,所以在字符串比较多的时候效率不高。 使用strings.Join()函数 示例: var s []string for i := 0; i <= 9; i++ { s = append(s, strconv.Itoa(i)) } fmt.Println(strings.Join(s, "")) 这种方式需要花费构建slice的时间。 使用bytes.Buffer: 示例: package main import ( "bytes" "fmt" "strconv" ) func main() { var buf...阅读全文

博文 2019-06-11 09:02:38 guyan0319

GO语言基础(二)2019-05-08

golang运算符10点40,结束了第一章,了解了golang的变量类型,这一章将会介绍golang的运算符P58-P61:算术运算符几乎完全类C,取消了三元运算符 a++ a--不能赋值给别的变量,只能独立使用,且没有++a这种用法,这与C不同%:a%b=a-a/b*b 算术运算符 P62-P68:各种运算符(与C完全一样,直接跳过)P69:I/O控制 fmt.Scanf() fmt.Scanln()P70-P76:计算机原理(跳过)%b:二进制输出强化一下原码、反码、补码的基础知识P77-P107:流程控制(类C,跳过...阅读全文

博文 2019-05-09 03:34:52 竖琴犹奏相思苦

Go 语言基础

Go 语言内置的运算符有:1.算术运算符:+ - * / % ++ --2.关系运算符:== != > < >= <=3.逻辑运算符:&& || ! 4.位运算符:& | ^ << >> 将其先转换为二进制数,在根据如下表规则 p q p & q p | q p ^ q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 如假定 A = 60; B = 13; 其二进制数转换为: A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 A<<2 =240 二进制为 1111 0000 左移n位就是乘以2的n次方。 A>>2 =15 二...阅读全文

使用go/scanner库来查找golang标准库源码中最常用的标识符

在YouTube上又看了Francesc Campoy大神的视频。这一期他主要讲了go/scanner库的用法。那么什么是go/scanner呢? 官方的定义是: Package scanner implements a scanner for Go source text. It takes a []byte as source which can then be tokenized through repeated calls to the Scan method. 翻译过来就是: scanner包实现了一个对于go源码文本的扫描器,它把[]byte作为一个源,通过重复的调用Scan方法来进行标记 以下是官方给的例子: package main import ( "fmt" "go/sc...阅读全文

博文 2020-03-20 05:32:43 zooeymoon

【Go学习笔记】 4、常量与运算符

常量的定义 常量的值在编译时就已经确定 常量的定义格式与变量基本相同 等号右侧必须是常量或者常量表达式 常量表达式中的函数必须是内置函数 1234567891011121314const a int = 1const b = 'A'const ( text = "123" length = len(text) num = b * 20)const i,j,k = 1,"2","3"const ( text2,lenght2,num2 = "234",len(text2),k * 10) 常量的初始化规则与枚举 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式 使用相同的表达式不代表具有相同的值 iota是常量的计数器,从0开始,组中没定义1个常量自动递增1 通过初始化规则与iota...阅读全文

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

好程序员分享如何看待CSS中BEM的命名方式?

好程序员分享如何看待CSS中BEM的命名方式?BEM的意识就是块(block)、元素(element)、修饰符(modifier),是由yandex团队提出的一种CSS Class命名方法。 任何一个东西的存在都有其存在的道理,如果他毫无价值,那么肯定会被淘汰,后人可能都不了解,甚至都不会出现在后人的世界里。 关于BEM命名其最大的争议就是其命名风格,它鼓励一级一级的写的非常具体,但是会很长。如此常的命名会影响书写效率,名称过长代码量就会增多,文件体积就会变大(在gzip下这个不算是个问题),从而会影响传输速度,用户体验度就低,但是作为一个职业人我们都不能单纯把个人喜好和习惯作为借口来拒绝或否定其用途。 风格对于使用者来说并不是很重要,关键的是看其效果。正所谓人们常说的“不看疗程,看疗效”。...阅读全文

Go 每日一库之 gjson

简介 之前我们介绍过gojsonq,可以方便地从一个 JSON 串中读取值。同时它也支持各种查询、汇总统计等功能。今天我们再介绍一个类似的库gjson。在上一篇文章Go 每日一库之 buntdb中我们介绍过 JSON 索引,内部实现其实就是使用gjson这个库。gjson实际上是get + json的缩写,用于读取 JSON 串,同样的还有一个sjson(set + json)库用来设置 JSON 串。 快速使用 先安装: $ go get github.com/tidwall/gjson 后使用: package main import ( "fmt" "github.com/tidwall/gjson" ) func main() { json := `{"name":{"first":...阅读全文

博文 2020-03-24 22:32:42 darjun

go语言学习初探(三)面向对象编程

类型系统 继承 package main import ( "fmt" ) type Integer int func (a Integer) Less(b Integer) bool { return a > b } func main() { var integer Integer = 1 fmt.Println(integer.Less(0)) } // print -> true 指针运算符 * package main import ( "fmt" ) type Person struct { Id string Name string } func main() { p1 := Person{"1", "张三"} p2 := &p1 p1.Id = "2" fmt.Println...阅读全文

博文 2018-10-26 15:34:40 夜丿未央

【Golang 基础】Go 语言的操作符

Go 语言的运算符 算术运算符 +:相加; -:相减; *:相乘; /:相除; %:求余; ++:自增; --:自减; 其中,++ 与 -- 不能用于赋值表达式, 如: count2 := count++;并且在 Go 语言中,不存在如:++count 表达式。 关系运算符 ==:检查两个值是否相等,如果相等返回 true,否则返回 false; !=:检查两个值是否不相等,如果不相等返回 true,否则返回 false; >:检查左边值是否大于右边值,如果是返回 true,否则返回 false; <:检查左边值是否小于右边值,如果是返回 true,否则返回 false; >=:检查左边值是否大于等于右边值,如果是返回 true,否则返回 false; <=:检查左边值是否小于等于右边值,如...阅读全文

博文 2019-03-18 19:34:42 龙泷VK

Learn Golang in Day 4

Learn Golang in Day 4 大纲 Go语言运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 算术运算符 运算符 描述 实例 + 加法 1+2= - 相减 3 * 相乘 / 除法 % 取模 ++ 自增 -- 自减 package main import "fmt" func main() { var a int = 10 var b int = 20 var c int c = a + b fmt.Printf("%d + %d = %d\n", a,b,c) c = a - b fmt.Printf("%d - %d = %d\n", a,b,c) c = a * b fmt.Printf("%d * %d = %d\n",a,b, c) c = ...阅读全文

博文 2019-01-30 00:34:45 笑吧小鸟

Golang学习笔记4——控制语句

1.基础知识补充(指针、递增递减语句) 指针 go虽然保留了指针,但是与其它编程语言不同的是,在go当中不支持指针运算以及"->"运算符,而直接采用"." 选择符来操作指针目标对象的成员 操作符"&"取变量地址,使用"*"通过指针间接访问目标对象 默认值为nil而非null 在go中,++与--是作为语句而并不是作为表达式 a := 1 a++ //但不能这样:a := a++,只能作为单独的语句独占一行 2.if判断语句 条件表达式没有括号 支持一个初始化表达式(可以是并行方式) 左大括号必须和条件语句或else在同一行 支持单行模式 初始化语句中的变量为block级别,同时隐藏外部同名变量 func main(){ a := 10 if a:=1 { fmt.Println(a) } f...阅读全文

博文 2017-10-22 09:04:44 MarksGui

再学JavaScript ES(6-10)全版本语法大全

​再学JavaScript ES(6-10)全版本语法大全 完整无密【点击下载】应对更复杂的场景,提升自己的技术实力,优化臃肿的代码,都需要对打牢语法基础。本课涉及JavaScript ES6到10的语法教学,内容全面丰富,熟练掌握语法,很多依赖第三方库才能做到的事用原生JS寥寥几行代码就可迎刃而解。适合人群各个阶段的前端工程师技术储备要求掌握JavaScript基础知识和ES5语法章节目录:第1章 课程介绍与环境搭建JS作为前端的立身之本,让大家了解学习这门课的必要性。考虑到很多同学刚刚接触前端或者对工程化方法不太了解,为了快速进入到学习状态,我们提供了极其简单的方式帮大家准备好学习环境。1-1 课程导学 试看1-2 电子书位置1-3 环境准备1-4 Node 安装1-5 初始化项目1-6...阅读全文

博文 2020-01-22 04:22:00 daqiuzhang

【Go学习笔记】10、结构struct

结构struct Go中的struct与c中的struct非常相似,并且Go没有class 使用typestruct{} 定义结构,名称遵循可见性规则 支持指向自身的指针类型成员 支持匿名结构,可用作成员或定义成员变量 匿名结构也可以用于map的值 可以使用字面值对结构进行初始化 允许直接通过指针来读写结构成员 相同类型的成员可进行直接拷贝赋值 支持 == 与 != 比较运算符,但不支持 > 或 < 支持匿名字段,本质上是定义了以某个类型名为名称的字段 嵌入结构作为匿名字段看起来像继承,但不是继承 可以使用匿名字段指针 1234567891011121314151617181920212223242526272829type human struct{ Sex int}//使用组合//类似继...阅读全文

博文 2017-05-30 05:10:16 HundredLee