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

支持日志切分的日志记录器(日期、大小、普通)-博文

//@description 日志记录工具类 /* 日志格式: 时间(系统时间) 日志类型(方法设置) 日志内容(动态输入) 日志类包含两个同步锁: 缓冲区锁-mu_buf 文件锁-mu_file 日志输入操作 Printf Println 1.获取缓冲区锁 2.写入缓冲区 3.释放缓冲区锁 4.A.调用bufWrite,B.等待定时调用bufWrite 日志输出操作 bufWrite 1.获取文件锁 2.判断缓冲区,不需写入则返回 3.获取缓冲区锁 4.写入缓冲区 5.释放缓冲区锁 日志监听操作 fileMonitor A.文件监听定时器到期fileCheck 1.获取文件锁 2.判断是否需要文件重名,并后续操作 3.释放文件锁 B.定时写入定时器到期bufWrite 文件定时写入bufW...阅读全文

博文 2017-05-05 04:39:26 hansegod

Go语言运算符

算数运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 运算符 描述 实例 + 相加 A + B 输出结果 30 - 相减 A - B 输出结果 -10 * 相乘 A * B 输出结果 200 / 相除 B / A 输出结果 2 % 求余 B % A 输出结果 0 ++ 自增 A++ 输出结果 11 -- 自减 A-- 输出结果 9 关系运算符 运算符 描述 实例 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 (A == B) 为 False != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 (A != B) 为 True > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 (A ...阅读全文

博文 2019-04-30 02:35:11 类似简单

Golang逻辑运算符短路补充

运算符 逻辑运算 && 与(短路与) || 或(短路或) ! 非 在程序开发中,逻辑运算符大家应该都比较熟悉了,最近在Golang的学习中,又收获了一个小特性,记录一下。逻辑运算符中的短路特性 !总结: 逻辑运算符: 1.非【!】 非真为假 非假为真 2.或【||】同假为假 其余为真 3.与【&&】同真为真 其余为假 注意:逻辑运算符只针对于布尔类型的数据值 或者表达式使用 这是原先的总结,依次为基础,我们来看下短路 首页我们写一个短路的证明: 代码: //因为0不能作为除数的特性 ,我们这里使用0来进行举证。 a,b:=10,0 if a>0 || a/b>0{ fmt.Println("OK") } 分析 :这个时候 || 左边为true 右边会报错 而或[||] 只要有一个为true即...阅读全文

博文 2019-07-02 18:32:41 野狐先生

golang位运算符

位运算,是两个数字的二进制对应的值,每一位,进行运算,得出新值的过程 & = 两个数,每一位,同时都=1,则返回1,其余0。 | = 两个数,每一位,任意一位=1,则返回1,否则0。 ^ = 两个数,每一位,只有一位=1,则返回1,否则0 &^^ = 两个数,如果第二个数的某一位=1,则修改第一个数对应的位的值=0,否则第一个数对应的位数的值不变。 第一个数 0110 第二个数 1011 进行&运算 0010 进行|运算 1111 进行^运算 1101 进行|运算 0100 /** 6 0110 11 1011 & 0010 2 | 1111 15 ^ 1101 13 &^ 0100 4 */ func main() { fmt.Println(6 & 11) fmt.Println(6 |...阅读全文

博文 2018-07-26 20:34:54 luckyase

Golang字符串遍历

Golang字符串遍历 package main import ( "fmt" ) func main() { v4 :=' 床前明月光, 疑似地上霜. 举着望明月, 低头思故乡. ` v6 := []rune(v4) v7 := "故" for k, v := range v6 { if string(v) == v7{ fmt.Printf("找到字符---\"%s\",\n其索引为%d\n",v7,k) fmt.Printf("%d--%c--%T\n", k, v, v) } } } 将字符串先转换为[]rune即[]int32,然后再一个个遍历, 这样才能得到一个顺序索引对应一个字符,不会隔2个才到一个中文字符,因为中文三个编码对应一个字符,直接使用for k,v := range...阅读全文

博文 2020-03-23 14:35:45 stardust_0000

一:Go编程语言规范--块、声明、作用域

1.块 块为一对大括号括住的声明和语句。块 = "{" { 语句 ";" } "}" . 除显式源码块外,还有隐式块: 全域块 包含所有的Go源码文本。 每个包都有包含其所有Go源码文本的 包块。 每个文件都有包含其所有Go源码文本的 文件块。 每个 if、for 和switch 语句都被视为处于其自身的隐式块中。 每个 switch 或 select 语句中的子句其行为如同隐式块。 块可嵌套并会影响作用域。 2.标识符 标识符被用来命名程序实体,例如变量和类型。一个标识符由一个或多个字母和数字组成。 标识符的第一个字符必须是字母。 给定一个标识符集,若其中一个标识符不同于该集中的任一标识符,那么它就是唯一的。 若两个标识符拼写不同,或它们出现在不同的包中且未 导出,那么它们就是不同的。否则...阅读全文

博文 2015-09-28 03:00:06 cyzsoho

基础知识 - Golang 中的正则表达式

------------------------------------------------------------ Golang中的正则表达式 ------------------------------------------------------------ 用法: ------------------------------ 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类] 匹配“字符类”中的一个字符,“字符类”见后面的说明 [^字符类] 匹配“字符类”外的一个字符,“字符类”见后面的说明 \小写Perl标记 匹配“Perl类”中的一个字符,“Perl类”见后面的说明 \大写Perl标记 匹配“Perl类”外的一个字符,“Perl类”见后面...阅读全文

博文 2018-01-06 15:52:20 golove

go语言读文件

读写文件是最基本的功能。 go语言读文件挺有意思,由于go语言的interface,使得go语言与其他语言有所不同。与其他语言一样,go语言有File类型的结构体,但File只提供了最基本的Read,Write等功能,而类似 与ReadLine这样的功能实在bufio包里提供的。 第一种方法,使用最传统的方式,Open,Read,Close,代码如下: //file1.go package main import ( "fmt" "os" ) func main() { f, err := os.Open("d:\\test.txt") if err != nil { panic("open failed!") } defer f.Close() buff := make([]byte, 1...阅读全文

博文 2014-11-16 10:07:00 铁哥

GOLANG 赋值

基本赋值语法 变量=表达式 var a int;a=1 变量里的元素=表达式 var arr[3] int;arr[0]=1 声明变量类型同时赋值 var 变量 类型=表达式 var arr[3] int =[3]int{1,2,3} 复合操作 变量 运算符=表达式 var c int=10;b+=1 变量里的元素 运算符=表达式 var arr [3] int;arr[1]+=2 自增,自减,使用与数值型,不能放在表达式中 变量++,变量-- var i int=99;i++ 元组赋值 变量1,变量2,变量3=表达式1,表达式2,表达式3 var x,y,x int;x,y,z=1,2,3 简短声明,声明变量同时赋值,变量类型有go自主推导 变量 :表达式 teacher :="曾远征...阅读全文

博文 2016-08-30 16:00:00 zengyz

golang转义字符大全

\a匹配响铃符 (相当于\x07)注意:正则表达式中不能使用\b匹配退格符,因为\b被用来匹配单词边界, 可以使用\x08表示退格符。\f匹配换页符 (相当于\x0C)\t匹配横向制表符(相当于\x09)\n匹配换行符 (相当于\x0A)\r匹配回车符 (相当于\x0D)\v匹配纵向制表符(相当于\x0B)\123匹配8進制编码所代表的字符(必须是3位数字)\x7F匹配16進制编码所代表的字符(必须是3位数字)\x{10FFFF}匹配16進制编码所代表的字符(最大值10FFFF )\E匹配\Q和\E之间的文本,忽略文本中的正则语法\\匹配字符\\^匹配字符 ^\$匹配字符 $\.匹配字符 .\*匹配字符 *\+匹配字符 +\?匹配字符 ?\{匹配字符 {\}匹配字符 }\(匹配字符 (\)匹...阅读全文

博文 2020-05-19 17:32:56 海淀胖爸爸

Go中的bit位和位运算符

一.二进制长什么样 bit比特是计算机的最小单元,是一个二进制位1或者0 t.Log("start") t.Logf("%b", 0) //0 t.Logf("%b", 1) //1 t.Logf("%b", 2) //10 t.Logf("%b", 3) //11 /* int是带符号的,表示范围是:-2147483648到2147483648,即-2^31到2^31次方。 uint则是不带符号的,表示范围是:2^32即0到4294967295。 */ var one uint one = 10000 t.Logf("%b", one) //10011100010000 13位,uint最多是32位 二.运算符 主要有下面几种运算符 & 位运算 AND | 位运算 OR ^ 位运算 XOR...阅读全文

Go语言基础整理

|内容| 要点| |-|-| |** 1.Go语言介绍及开发环境搭建**|1.Go语言是什么;2.[Go语言优势 ](http://baidu.com);3.Go语言适合来做什么;4.Go语言安装和设置;5.标准命令概述;6.第一个Go语言程序| |**2.基础类型**|1.变量的命名规则;2.变量的声明;3.变量的初始化;4.变量的赋值;5.匿名变量;6.基础数据类型;7.字面常量;8.常量定义;9.iota枚举;10.类型转换;11.类型别名;12.fmt包的格式化输出 |**3.运算符**|1.算术运算符;2.关系运算符;3.逻辑运算符;4.位运算符;5.赋值运算符;6.其他运算符;7.运算符优先级 |**4.流程控制**|1.选择结构;2.循环语句;3.跳转语句 |**5.函数**|...阅读全文

博文 2018-04-28 11:35:46 luxilang

Django项目部署中的服务器安全详解

  跨站脚本安全保护(Cross site scripting protection)   跨站脚本攻击(XSS)通常发生于站点存储和使用不安全的内容,例如数据库里存储的用户内容是用户的脚本,这些脚本读取后未经处理便执行导致了网站的不安全。例如:     当var是来自用户类似于这样的内容:   'class1 onmouseover=javascript:func()'   这样就可能导致浏览器执行不安全的脚本。为了避免这类问题,Django的模版有一些自动过滤特殊字符的机制,类似于 ‘<’和>’之类的字符都会被过滤。如果你确定某些内容是完全安全的,不是来自用户的非法输入,想展示在...阅读全文

【干货分享】前端开发之jquery知识点集锦

学习web前端开发,除了要学习HTML、css、js等基础知识外,jQuery也是必须内容之一。那对于jQuery的学习我们具体要学哪些东西,要学到什么程度呢?且看今天小编为大家分享的jQuery常用知识点集锦。 1、jQuery 概述 我们首先从jQuery最基本的概述说起,jQuery是一个 JavaScript 库,极大地简化了 JavaScript 编程。 2、添加 jQuery 库 在前端开发中,我们如何添加jQuery库呢?其实,jQuery 库位于JavaScript 文件中,其中包含了所有的 jQuery 函数,可通过如下方式添加:   <head>   <script type="text/javascript" s...阅读全文

Go基础-map

// xuhh_go_map project /* 1.map的特点: a.map是go语言的内置引用类型,所以多个map指向同一个底层的情况下,一个值发生变化,全部发生变化 b.map是无序的,每次迭代的顺序都是不确定的。 c.map只有 len 没有 cap。 d.map不是线程安全的,在多个go-routine中使用的时候,要加锁。 e.map[key]value key 必须支持 运算符(== 、!= )的操作,例如 number/string/pointer/array/struct/interface value 可以是任意类型。 2.map的创建: a. new 进行创建 mapA := new(map[int]string) *mapA = map[int]string{} ...阅读全文

博文 2015-06-17 23:08:20 xuheazx

Go语言的标识符、关键字、字面量、类型

一直在 Segment Fault 上面实行自己的拿来主义,但其实我是一直很乐意分享的人,而且特别喜欢写,以前一直都是在自己的博客里面写,但是没啥人看,也形成不了交流,所以,申请在 Segment Fault 上面开个专栏,以后还忘大家多多指教,这篇文章只是想试试 Segment Fault的编辑器,内容是前几天写的。 Go语言的语言符号又称记法元素,共包括5类,标签符(identifier)、关键字(keyword)、操作符(operator)、分隔符(delimiter)、字面量(literal),它们是组成Go语言代码和程序的最基本单位。 Go语言的所有源代码都必须由 Unicode 编码规范的 UTF-8 编码格式进行编码。 一、标识符 在Go语言代码中,每一个标识符可以代表一个变更...阅读全文

博文 2017-02-09 13:45:45 pantao

Go 语言标准库中最常用的标识符是什么?

这篇文章是来自最新 [justforfunc](http://justforfunc.com/) 中同标题的一段。这个程序的[代码](https://github.com/campoy/justforfunc/blob/master/24-go-scanner/main.go)可以在 [justforfunc 仓库](https://github.com/campoy/justforfunc) 中找到。 ### 问题陈述 想象一下,对于下面的代码段,你如何将其中所有的标识符都提取出来。 ```go package main import "fmt" func main() { fmt.Println("Hello, world") } ``` 我们期望可以得到一个包含 **main**, *...阅读全文

博文 2018-02-01 14:30:47 kaneg

关于Go语言标识符

go语言对于其他包中标识符的引用需满足两个条件;一、该包已经被事先导入,通过go语言的导入代码实现;二、该包中的标识符必须是可导出的。而标识符可导出同样需满足两个条件;一、该标识符的首字母大写,go语言是根据大小写来判定访问权限的,首字母大写意味着该标识符的访问权限是“公开的”,小写表明访问权限为“私有的”,只能在同一代码包中的代码才能访问;二、标识符必须是被生命在代码包中一个变量或者类型名称,或者是结构体中字段或者方法名...阅读全文

博文 2015-10-28 03:00:00 xiaomage1992

Go语言用栈实现算术表达式

将中序表达式转成后序表达式,再通过后序表达式计算出值。 package main //表达式 //author:Xiong Chuan Liang //date:2015-2-2 import ( "fmt" "github.com/xcltapestry/xclpkg/algorithm" "strconv" "errors" ) func main(){ // 中序表达式 后序表达式 // a+b = ab+ // (a+b)/c = ab+c/ // a+b*(c+d) = abcd+*+ // a*b+c*(d-e)/f = ab*cde-*f/+ //str := "a*b+c*(d-e)/f" //str := "1*2+3*(4-5)/6" str := "1*2+3*(5-1...阅读全文

博文 2015-06-17 23:07:20 xcltapestry

Let's Encrypt 终于支持通配符证书了

经过两次跳票,Let’s Encrypt 终于在社区宣布支持通配符证书,相关的新闻和技术点见: ACME v2 and Wildcard Certificate Support is Live ACME v2 Production Environment & Wildcards 什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用。 Let’s Encrypt 也是一个 CA 机构,但这个 CA 机构是免费的!!!也就是说签发证书不需要任何费用。 Let’s Encrypt 由于是非盈利性的组织,需要控制开支,他们搞了一个非常有创意的事情,设计了一个 ACME 协议...阅读全文

博文 2018-03-15 15:11:10 虞大胆

Go学习笔记之:切片

切片是Go语言的关键类型之一,它提供了比数组更多的功能。 示例1: package main import "fmt" func main() { // 和数组不同的是,切片的长度是可变的。 // 我们可以使用内置函数make来创建一个长度不为零的切片 // 这里我们创建了一个长度为3,存储字符串的切片,切片元素 // 默认为零值,对于字符串就是""。 s := make([]string, 3) fmt.Println("emp:", s) // 可以使用和数组一样的方法来设置元素值或获取元素值 s[0] = "a" s[1] = "b" s[2] = "c" fmt.Println("set:", s) fmt.Println("get:", s[2]) // 可以用内置函数len获取切...阅读全文

博文 2014-11-26 08:00:01 Goopand

从go语言中找&和*区别

*和&的区别 :& 是取地址符号 , 即取得某个变量的地址 , 如 ; &a*是指针运算符 , 可以表示一个变量是指针类型 , 也可以表示一个指针变量所指向的存储单元 , 也就是这个地址所存储的值 .从代码中验证 :先构建一个Rect类型 : 1. &是取地址符号, 取到Rect类型对象的地址 2. *可以表示一个变量是指针类型(r是一个指针变量): 3.*也可以表示指针类型变量所指向的存储单元 ,也就是这个地址所指向的值 4.查看这个指针变量的地址 , 基本数据类型直接打印地...阅读全文

博文 2018-12-06 19:32:37 liuli9

golang官方工具dep的使用

一、安装篇 1.下载release版本。打开页面https://github.com/golang/dep/releases,下载最新的dep-windows-amd64.exe 2.将dep-windows-amd64.exe放入GOPATH/bin下,修改名称为dep 二、使用篇 初始化 1.切换到工程目录下cd %GOPATH%/src/github.com/xxx/dep-demo 2.初始化dep init 添加 预先添加到vendor中 dep ensure -add github.com/foo/bar github.com/baz/quux 更新 dep ensure -update 同步 四种情况:工程中引入包、移除包、Gopkg.toml规则修改、不确定情况 dep en...阅读全文

博文 2018-04-28 16:33:04 mickelfeng

go开发环境配置

remove golang sudo apt-get autoremove golang download golang 1.2.2 wget http://golang.org/dl/go1.2.2.linux-amd64.tar.gz tar zxf go1.2.2.linux-amd64.tar.gz mv go /home/work/app/go1.2.2 vim /home/tudou/.bashrc export GOROOT=/home/work/app/go1.2.2 export PATH=$PATH:$GOROOT/bin sudo apt-get autoremove vim sudo apt-get install libncurses5-dev libgnome2-...阅读全文

博文 2014-10-19 11:00:06 ylqmf

Golang 实现简单的滚动读取文本更新

这个小程序要实现的效果,简单地说,就是将目标文件的内容读取输出到终端,并且目标文件并不是静态的,而是随时会添加新的内容。我们的目标就是一旦目标文件添加了新的内容,就把它读取出来并且显示到终端上。 实现方法很简单,用一个变量offset标记已经读到了文件的哪个位置,每次循环开始前就将读指针指到相应位置。这里有两个tricky的地方需要注意,我们在每次循环的时候都要重复地打开和关闭文件,否则文件有更新也读不出来。当我们读到文件末尾时,会多读出一个字符(文件结束标识符?)。具体的实现如下: package main import ( "fmt" "io" "os" "time" ) func main() { file := os.Args[1] buf := make([]byte, 1024)...阅读全文

博文 2016-07-27 15:00:01 YaoDD

Go语言中的运算符

1 概述 Go语言提供了,算术,关系,逻辑,位,指针,赋值运算符。本篇整体说明一下。 2 算术运算 + 相加 - 相减 * 相乘 / 相除 % 求余 ++ 自增 -- 自减 几个细节,需要留意一下。 整数与浮点数进行运算,会将整数转化为浮点数,再运算。 两个整数相除,结果是整数,取整数部分。5/3 结果会是 1。 求余,如果被除数或除数存在负数,那么余数与被除数保持一致。此处是求余不是取模。 ++/--,不区分前后,只有变量后的语法,就是 v++。同时++/--构成语句而不是表达式,意味着不能直接赋值。 3 字符串连接运算 + +运算符,也可以完成字符串的连接运算。 "Hello" + " " + "Hank!" 4 关系运算 == 检查两个值是否相等 != 检查两个值是否不相等 \> 检查...阅读全文

博文 2018-10-28 07:35:08 小韩说课

Go 字符串处理

函数: Join(a []string, sep string) string说明: 将一个字符串切片中的元素以字符 sep 进行分隔然后合并成一个字符串并返回实例: func main() { str := []string{"Hello", "World", "Good"} fmt.Println(strings.Join(str, " ")) } 程序输出 Hello World Good 函数: LastIndex(s, sep string) int说明: 判断字符 sep 在字符串 s 中最后一次出现的位置,如果成功返回 sep 位置的索引,如果字符 sep 不在字符串 s 中则返回 -1实例: func main() { str := "Hello World" fmt.Pri...阅读全文

博文 2017-02-10 14:44:53 yin32167

[翻译] effective go 之 Initialization

Initialization Although it doesn't look superficially very different from initialization in C or C++, initialization in Go is more powerful. Complex structures can be built during initialization and the ordering issues between initialized objects in different packages are handled correctly. 从表面上看 Go的初始化和C/C++区别不大 但是Go更加给力 复杂的数据结构可以在初始化的时候建立起来 并且Go可...阅读全文

博文 2014-10-04 19:26:13 pengfei_xue

【Go语言】【3】GO语言常量

通常情况下语言入门前会讲一堆背景和特性,目的是为了能让学习者对该语言有一个大概的认识,但这里我想直接进入细节,不是因为任性,而是因为常量是编程语言最基本的组成元素,这与语言背景无关。一、字面常量在说明字面常量之前先说一下魔鬼数字,哪么什么是魔鬼数字呢?func calculatePrice(price float32) float32{ return price * 0.8}这个方法中的0.8就是魔鬼数字(没有具体含义),它导致代码难以理解,这里的0.8表示折扣的意思,为了清晰起见,上面的代码可以如下修改:const discount float64 = 0.8 // 定义折扣常量func calculatePrice(price float32) float32{ // 计算折扣后的价格 ...阅读全文

博文 2017-02-09 15:57:52 qingkechina

golang 数据一 (字符串、数组和数组指针)

从如下几个方面介绍GO语言的数据1. 字符串 2. 数组 3. 切片 4. 字典 5. 结构字符串Go语言中的字符串是由一组不可变的字节(byte)序列组成从源码文件中看出其本身是一个复合结构string.go type stringStruct struct { str unsafe.Pointer len int }字符串中的每个字节都是以UTF-8编码存储的Unicode字符字符串的头部指针指向字节数组的开始但是没有NULL或'\0'结尾标志。 表示方式很简单用双引号("")或者反引号(``)它们的区别是双引号之间的转义符会被转义而反引号之间的转义符保持不变反引号支持跨行编写而双引号则不可以{ println("hello\tgo") //输出hello go println(`hel...阅读全文

博文 2017-02-10 10:23:25 100018

golang截取字符串的性能相差200倍

package main import ( "fmt" "log" "strings" "time" ) func main() { str := "sum::goods_num" var content,content1 string var i int start1 := time.Now() for i = 0;i<1000000;i++ { content = str[5 : ] } elapsed := time.Since(start1) fmt.Println(elapsed) log.Println(content) start2 := time.Now() for i = 0;i<1000000;i++ { selectStruct := strings.Split(str...阅读全文

博文 2019-08-15 09:30:54 golanglover

理解位运算及使用场景

最近在看APUE,函数umask的例子用到了位运算,认为这是个非常适合使用位运算的场景,有必要笔记一下。例子代码基于golang,因为最近在学习golang. 位运算 先来看下位运算的定义:程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。摘自百度百科 比如,&运算本来是一个逻辑运算符,但整数与整数之间也可以进行&运算。举个例子,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理),下面的代码是用go实现的...阅读全文

博文 2017-03-06 05:47:00 kuuyee

Golang语言基础教程:算术运算符

表达式:(a + b) * ca,b,c叫做操作数+,*,叫做运算符一、运算符1.1 算术运算符+ - * / %(求余) ++ --1.2 关系运算符== != > < >= <=1.3 逻辑运算符​1.4 位运算符​这里最难理解的就是^了,只要认为AB两者都相同的时候,为0,其他都为1假设A为60,B为13​1.5 赋值运算符​1.6优先级运算符优先级有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:​当然,你可以通过使用括号来临时提升某个表达式的整体运算优先级。———————————————————————————————————————————————————————出处:千锋教育go语言教研部作者:茹...阅读全文

新手求解答 eclipse中运行go Application是出现Resource doesn't have a corresponding Go Package

刚刚接触go,对他还不是很了解。 我在eclipse中运行.go文件时出现Resource doesn't have a corresponding Go Package,按照网上的解答说是应为少了main文件夹,我就在src文件夹下创建了一个main文件夹,将.go文件放进去之后还是出现这个提示,是我创建的方式不对吗,还是因为其他原因? 我在命令提示符中可以运行成功。 ![image.png](https://static.studygolang.com/180314/08e7258a984b46aa81cfe08c9096fca0.png) ...阅读全文

golang99道练习题之15

**1.利用条件运算符的嵌套来完成此题:** **学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。** **2.程序分析:(a>b)?a:b这是条件运算符的基本例子。** **3.程序源代码:** **不支持这个运算符** ```go package main import "fmt" func main() { var score int var grade string fmt.Print("请输入你的成绩:") fmt.Scan(&score) if score < 0 || score > 100 { fmt.Println("您输入的有误!") } else { if score >= 90 { grade = "A" } else if sco...阅读全文

Go语言核心技术(卷一)之2.1-整数

第二章 序 在计算机底层,一切都是比特位。然而计算机一般操作的都是固定大小的值,称之为字(word)。字会被解释为整数、浮点数、比特位数组、内存地址等,这些字又可以进一步聚合成数据包(packet)、像素点、作品集、诗歌或者其它任何对象。Go语言提供了多样化的数据组织方式,这些数据类型既有硬件层面的兼容性,又能让程序员方便的组合成更复杂的数据类型。 Go语言的数据类型分为四大类:基本类型,复合类型,引用类型及接口类型。本章将介绍基本类型:数字,字符串,布尔值。 一、整数 Go语言的数值数据类型包括以下几种:整数,浮点数,复数,每一种都包含了大小(size)不同的数值类型,例如有符号整数包含int8,int16,int32,int64,int。每一种数值类型都会决定值的大小和符号(正负),我们...阅读全文

博文 2016-03-16 15:00:05 abv123456789

Go语言中字符串操作常用函数介绍

- 操作 ```go //"helloogo"中是否包含"hello" fmt.Println(strings.Contains("helloogo", "hello")) fmt.Println(strings.Contains("helloogo", "goe")) //Join组合 s := []string{"abc", "hello", "mike", "go"} buf := strings.Join(s, "_") fmt.Println("buf = ", buf) //Index 查找子串所在位置 fmt.Println(strings.Index("abcdhello", "hello")) fmt.Println(strings.Index("abcdhello", "...阅读全文

博文 2019-04-21 22:40:52 OctopusLian

GO语言初探(一) 开发环境配置及测试 .

1、GO下载地址 http://code.google.com/p/go-windows 2、配置环境变量 选择我的电脑->右键单击属性-> 选择高级选项卡->点击下面的环境变量设置 分别在系统环境变量中添加如下4个环境变量 goroot GO的安装路径 例如c:/go goos mingw goarch 386 path GO的BIN路径 例如c:/go/bin(path变量一般都存在,直接打开,在最前面+个半角状态下的分号,然后在分号前面输入BIN路径即可) 设置完毕后 在运行中输入cmd 然后输入:8g 看是否可以找到路径,如果该命令不存在找不到的问题,那么恭喜你,配置成功,如果提示找不到命令,那么证明配置不成功,可以通过SET来配置一下试试,如何还存在问题,具体可以联系我,我们共同探...阅读全文

博文 2014-10-17 00:00:06 jasontome

Python和C#优劣势对比 python课程

Python是一种跨平台语言。无论是在Windows、Linux、Unix还是Mac Os系统,我们都可以使用Python。甚至在Linux、Unix及Mac OS系统内已经集成了Python。语法简洁优美, 简单,易学。拥有强大的标准库及第三方库。Python的使用范围极广。 C#是微软公司推出的一种功能强大的高级编程语言,能够迅速、高效地完成Windows平台上的项目开发,被称为未来语言! Python和C#语言都是功能强大的有前途的编程语言,那么两者有什么区别呢? 1. Python原本就被设计成类似用英语表达一样,所以语法简单,没有像句法括号和大量的修饰词,易读易学;而C#必须遵循一定的规则,伴随着很多修饰词,还得将代码段放在括号内; 2. 在编写脚本方面,P...阅读全文

Go语言学习笔记(二) [变量、类型、关键字]

日期:2014年7月19日 1、Go 在语法上有着类 C 的感觉。如果你希望将两个(或更多)语句放在一行书写,它们 必须用分号分隔。一般情况下,你不需要分号。 2、Go 同其他语言不同的地方在于变量的类型在变量名的后面。例如:不是,int a,而是 a int。当定义了一个变量,它默认赋值为其类型的 null 值。这意味着,在 var a int后,a 的 值为 0。而 var s string,意味着 s 被赋值为零长度字符串,也就是 ""。 3、Go语言的变量声明和赋值 在Go中使用var对变量进行声明, 例如: var a int a = 15 var将变量a声明为int型,然后通过=赋值。 当然在Go语言中,我们可以把声明和赋值过程一步完成, 例如: a := 15(这一形式只可用在...阅读全文

博文 2014-10-10 21:00:00 whxaing2011

Go语言支持的正则语法

## 1 字符 |语法|说明| |:---|:---| |. |任意字符,在单行模式(s标志)下,也可以匹配换行| |[xyz] |字符类| |\[^xyz] |否定字符类| |\d |Perl 字符类| |\D |否定 Perl 字符类| |[[:alpha:]] |ASCII 字符类| |[[:^alpha:]] |否定 ASCII 字符类| |\pN |Unicode 字符类 (one-letter name)| |\p{Greek} |Unicode 字符类| |\PN |否定 Unicode 字符类 (one-letter name)| |\P{Greek} |否定 Unicode 字符类| 参考以下附录,获取具体字符类的内容: * [Perl 字符类](http://go.hel...阅读全文

博文 2018-11-12 22:19:50 hanzkering

go结构体中String接口的实现为什么是结构体而不是指针

package main //Go语言组合的思想很重,数据之间如果要传承 //需要将数组组合进来 //Go有指针的概念,但是并没有指针运算符 import ( "fmt" ) const ( ANIMAL_CAT = 0 ANIMAL_MOUSE = 1 ANIMAL_DOG = 2 ) //go语言的接口 type Animal interface { name() (string) setName(name string) setType(animalType int) getType()(int) } //猫 type Cat struct{ //名称 m_name string "名称_tag" //类型 m_type int "类型_tag" //种类 m_spec string ...阅读全文

博文 2016-11-08 11:00:04 davidsu33

[翻译]编译器(6)-标识符

文在此。 ————翻译分隔线———— 编译器(6)-标识符 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 在本文中,我们终于可以开始沉浸在代码中去了! 标识符 在之前的内容里,我们已经讨论了语法和需要扫描的标识符的集合。我们定义了表达式、数字和运算符。同时还明确期望有成对的括号。还应当让解析器知道,扫描器什么时候到达文件结尾。 在开始扫描之前,为了让扫描器能够工作之前,需要将代码中的标识符格式化。在编译器所涉及的所有阶段都会用到标识符。如果我们希望开发出像 Go 的 fmt 或 vet 这样的程序,还可能需要复用标识符。 这是第一部分的代码:https://github.com/rthornton128/...阅读全文

博文 2014-10-09 16:20:25 mikespook