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

Golang 基础语法-基本变量(2)

Golang 基础语法-基本变量(2) 变量的零值说明 数值类型变量的零值为 0 布尔类型变量的零值为 false 字符串类型变量的零值为 "” 变量的类型转换语法 golang 中不同类型之间的变量赋值需要显式的转换 //语法格式 T(v) 将 v 转换为 类型 T var i int = 32 var f float64 = float64(i) var u uint = uint(64) 变量的定义(声明) 使用 var 声明无论在函数内还是函数外,都可以使用 var 声明变量 基本语法格式为:var varName varTypevar varName = varValuevar varName1, varName2 varTypevar varName1, varName2 = v...阅读全文

博文 2017-12-06 06:04:45 luxixing

《Go语言程序设计》第4章练习

4.1 写一程序求y值(x值由键盘输入)。 y = (sinx+cosx)/2, x>=0 y = (sinx-cosx)/2, x<0 4.2 输入一个字符,判断它如果是小写字母输出其对应的大写字母;如果是大写字母输出其对应的小写字母;如果是数字输出数字本身;如果是空格输出“SPACE”;如果不是上述情况输出“Other”。 4.3 有三个数a、b、c,由键盘输入,输出其中最大的数。 4.4 输入一个数,判断它能否被3或者5整除,如至少能被这两个数中的一个整除则将此数打印出来,否则不打印,编出程序。 4.5 读入1-7之间的某个数,输出表示一星期中相应的某一天的单词:Monday、Tuesday等,使用switch语句实现...阅读全文

《Go语言程序设计》第3章练习

3.1 输入一个三位整数,求出该数每个位上的数字之和。如123,每个位上的数字之和就是1+2+3=6。 3.2 输入三个float64类型浮点数,分别求出它们的和、平均值、平方和以及平方和的平方,并输出所求的各个值。 3.3 设f表示华氏温度、c表示摄氏温度、k表示绝对温度,将华氏温度转换为摄氏温度和绝对温度的公式分别为: c=5/9*(f-32) k=273.16+c 编写程序,要求通过键盘输入f的值,计算c和k的值并输出。 3.4 编写程序,把极坐标(r,θ)转换为直角坐标(x.y),其中的θ单位为度。转换公式是: x = r * cosθ y = r * sinθ 3.5 通过键盘输入英文字符串,并统计字符串中的英文字母个数,同时输出字符串字节长度...阅读全文

Fourth glance in Go

在Go里面的结构体和方法是很有意思的内容。它即和OO有点像,但又不完全一样。为什么这么说呢?当你把结构体映射为OO里面的类的时候,你给结构体添加方法,你就会发现其实方法与结构体并没有严格意义上的关系。在Go里面,方法是绑定到接受者上的。什么是接受者?一个对象,这个对象可以是任何类型,int,string, struct, interface ...。 func (t *Type) method_name(parameters) return type 但是同名的方法,在同一个类型上只能出现一次。而且该类型必须与方法在同一个包中。 另外一点是内嵌结构体的问题,方法是可以被继承的。也就是说一个结构体被内嵌到另一个结构体中,那么父结构体也就具有了内嵌结构体的方法 >>person.go -----...阅读全文

博文 2015-02-12 03:00:01 moonz-wu

GO语言反射机制

反射机制基本和Java等类似,可获取struct或变量的类型 值等信息。获取或修改对象的值时,一定要判断该属性是否为可操作状态,否则会导致错误。 示例代码如下: package main import ( "fmt" "reflect" ) ///首字母大写表示该字段可导出,并可修改值 type User struct { ID int name string //未导出 Age int } func (u User) Info() { fmt.Println(u) } func GetInfo(o interface{}) { t := reflect.TypeOf(o) fmt.Println(t.Name()) v := reflect.ValueOf(o) for i := 0; i...阅读全文

博文 2015-06-17 23:05:56 genispan

go语法之一

Go语法: Go语言要求public的变量必须以 大写字母开头,private变量则以小写字母开头,这种做法不仅免除了public、private关键字,更重要的是统一了命名风格。 Go语言对{ }进行了强制,必须如下写法: if expression { ... } 下面的写法是错误的: if expression { ... } Go代码的花括号位置是非常统一的; 最有意思的其实还是 Go 语言首创的错误处理规范: f, err := os.Open(filename) if err != nil{ log.Println("Open file failed:", err) return } defer f.close() 1、defer 关键字;defer语句的含义是不管程序是否出现异...阅读全文

博文 2015-06-30 03:00:00 chris-cp

Golang小实战 开发Web常用工具 第一弹

> 我只是一枚小菜鸟,不会并发,不会分布式,也不会自动化、大数据,只有浅显的技术,只是想大概分享下做的一些小工具。每天早上醒来签到已经成为一种习惯,偶尔回答下问题,索性活跃度不是很高,没啥可说的了。 **上预览图** ![QQ截图20171218190603.png](https://static.studygolang.com/171219/221a75b5b56218140022ea8df8519c8a.png) *平时可能要自己加密或者随机生成一段字符串做密码或者其他的加密用途,上面的预览图是我喜欢的某网站的风格图,模仿其功能,采用 iview + axios + golang 技术,进行功能还原,代码很一般,如果有错误请批评指正。下面是还原预览图* !...阅读全文

学习go语言的第一天

Go语言优势: •静态语言,强类型。静态编译能帮我们检查出来大量的错误,go的强类型甚至变态到不支持隐式的类型转换。 •gofmt,应该这是我知道的第一个官方提供统一格式化代码工具的语言了。有了gofmt,大家的代码长一个样了,也就没有花括号到底放到结尾还是新开一行这种蛋疼的代码风格讨论了。因为大家的代码风格一样,所以看go的代码很容易。 •天生的并行支持,因为goroutine以及channel,用go写分布式应用,写并发程序异常的容易。没有了蛋疼的callback导致的代码逻辑割裂,代码逻辑都是顺序的。 •性能,go的性能可能赶不上c,c++以及openresty,但真的也挺强悍的。在我们的项目中,现在单机就部署了一个go的进程,就完全能够胜任以前200个python进程干的事情,而且C...阅读全文

博文 2015-07-19 03:00:02 lovlin

go语言总结第一章

需要注意的地方:1.整型数据的溢出; 一个int8型整数的最大值是127,如果在加上一就是-128.2.特殊类型:复数: 复数实际上由两个浮点数构成,一个表示实部,一个表示虚部。3.Go语言规定,函数,控制结构等的左大括号“{”必须和函数声明或控制结构放在同一行。如果将左大括号放在函数声明,控制语句的下一行,编译器会在左大括号的前方自动加一个大括号,可能导致程序异常。4.Go对多语言的支持。5.函数名首字母为小写,即为private 函数名首字母为大写,即为publi...阅读全文

Go基础系列:struct的导出和暴露问题

struct的导出和暴露问题 关于struct的导出 struct的属性是否被导出,也遵循大小写的原则:首字母大写的被导出,首字母小写的不被导出。 所以: 如果struct名称首字母是小写的,这个struct不会被导出。连同它里面的字段也不会导出,即使有首字母大写的字段名。 如果struct名称首字母大写,则struct会被导出,但只会导出它内部首字母大写的字段,那些小写首字母的字段不会被导出。 也就是说,struct的导出情况是混合的。 但并非绝对如此,如果struct嵌套了,那么即使被嵌套在内部的struct名称首字母小写,也能访问到它里面首字母大写的字段。 例如: type animal struct{ name string Speak string } type Horse str...阅读全文

博文 2018-11-23 09:11:27 f-ck-need-u

golang 读取 post json 信息

package main import ( "encoding/json" "fmt" ) type fileinfo struct { FileName string // 首字母大写 } type jsonfile struct { File []fileinfo // 与“file”对应,但是首字母需要大写 } // 预定post过来数据 // 正常情况下 r.Boyd 中获取数据 // ioutil.ReadAll(r.Body) 获得信息 []byte func main() { str := `{"file":[{"fileName":"text.exe"},{"fileName":"aria2.conf"}]}` var s jsonfile json.Unmarshal([]...阅读全文

博文 2018-02-24 15:33:04 304158

Go语言:正則表達式的使用

Go语言的正則表達式使用非常easy。演示样例代码: package test import ( "fmt" "regexp" ) func RegixBase() { //findTest() //findIndexTest() //findStringTest() //findChinesString() //findNumOrLowerLetter() findAndReplace() } //传入[]byte,返回[]byte func findTest() { str := "ab001234hah120210a880218end" reg := regexp.MustCompile("\\d{6}") //六位连续的数字 fmt.Println("------Find------...阅读全文

博文 2015-12-22 03:00:01 gcczhongduan

GO编程基础

什么是Go? Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。 Go的主要特点: 类型安全和内存安全 以非常直观和极低代价的方案实现高并发 高效的垃圾回收机制 快速编译(同时解决C语言中头文件太多的问题) 为多核计算机×××能提升中的方案 UTF-8编码支持 ----- Go存在的价值是什么? [GO 在谷歌:以软件工程为目的的语言设计请添加链接描述](https://www.oschina.net/translate/go-at-google-language-design-in-the-service-of-software-engineering) ----- Go命令 在命令行或终端输入go...阅读全文

博文 2019-04-29 20:35:11 类似简单

Go2将修改导出规则

Go2将修改导出规则, 只有小写字母和”_“开头的不导出. 中文等不区分大小写的标识符默认导出. A solution that's been kicking around for a while: For Go 2 (can't do it before then): Change the definition to “lower case letters and _ are package-local; all else is exported”. Then with non-cased languages, such as Japanese, we can write 日本語 for an exported name and _日本語 for a local name. This ru...阅读全文

Go操作Redis

Start 在SF文章中,关于PHP,python操作redis的文章已经很多了。可是少了go对redis的操作。最近也是刚开始学Go,由于对redis的偏爱,也顺便学习了一下,并总结下来。 Go-Redis包管理 很明显,我们Go是没有这个包的,那么我们可以利用GO的命令。首先我们得先配置GOPATH的路径,我选择的是/data/go/goSource作为我包的路径,所以shell执行如下 export GOPATH=/data/go/goSource go get github.com/alphazero/Go-Redis这样就载下了Go-Redis包了 代码验证 确认redis服务已经开启 redis.conf注意bind ip 确认可以被连接 code package main im...阅读全文

博文 2017-02-09 14:18:46 Lowky

Go语言struct tag介绍

一、tag说明先介绍一下``(反引号):反引号用来创建 原生的字符串字面量 ,这些字符串可能由多行组成(不支持任何转义序列),原生的字符串字面量多用于书写多行消息、HTML以及正则表达式。在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有反引号括起来的内容。如下:1234type User struct { UserId int `json:"user_id" bson:"user_id"` UserName string `json:"user_name" bson:"user_name"`}要比较详细的了解这个,要先了解一下golang的基础,在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。但是由经常需要和...阅读全文

博文 2018-08-06 21:35:26 hgqxjj

GoLand Json 解析

GoLnand 这门语言 比较特殊,靠标志符的大小写来决定访问域,而不是像传统java,c++那样使用关键字限定访问。 看个例子: 这里定义了一个解析结构体 type Response struct { code int64 msg string data string } 执行json解析 func main() { var resp Response err:=json.Unmarshal([]byte(` {"code":200,"msg":"success","data":"Macbook Pro 2018 款"}`),&resp) if err !=nil { return }else { fmt.Println(resp) } } image.png 然而json数据并没有成功解...阅读全文

博文 2018-07-16 14:34:47 litesky

Go struct tag

struct成员变量标签(Tag)说明 要比较详细的了解这个,要先了解一下golang的基础,在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。但是由经常需要和其它的系统进行数据交互,例如转成json格式,存储到mongodb啊等等。这个时候如果用属性名来作为键值可能不一定会符合项目要求。 ==示例代码: package main import ( "encoding/json" "fmt" "reflect" ) type User struct { UserId int `json:"user_id"` UserName string `json:"user_name"` } func main() { // 输出Json格式 u := &U...阅读全文

博文 2018-07-24 11:30:01 vincenshen

让我们一起Go(十二)

前言: 上篇中,我们讲到了在Go语言中如何定义方法,今天,我们将进一步深入Go语言的面向对象编程。 一、Go语言中的接口 首先来看一个最基本的接口: 和定义一个结构体类似,只不过将struct换成了interface,然后声明了两个函数:draw()和count()。就这么简单,一个接口就定义好了,那么如何实现接口呢?在java中我们会让一个类去实现接口,在实现的时候必须用implements关键字显示声明去实现,如: class myshow implements show{...} 在Go语言中,不需要这么做,我们要做的只是去实现接口声明的所有函数就可以了,如下所示,就实现show这个接口: 上面代码,我们的osArgs结构体实现了文章开头给出的show这个接口。其实就是用到上一篇的内容...阅读全文

博文 2015-09-05 00:00:00 a6652162

go语言——Hello Word!

package main import "fmt" func main(){ fmt.Pritln("Hello Word!") } 我们这个程序的函数名称是main。尽管名称没有限制,但main包的main函数是每一个可执行程序的入口。而“包”则包装了相关的函数、变量和常量,要用import导入,才可以使用。例如:我们导入fmt包,才可以使用它的Println函数。 双引号里的“Hello Word!”是Go的字符串常量。和C的字符串不同,Go程序不可以改变字符串的内容,而仅仅是将其地址和长度作为字符串的值,复制给参数。也可以说,Go的参数传递,都是值的传递,而没有其他语言的那种间接的引用参数。 Go语言将代码风格强制统一,例如Go语言要求public的变量必须以大写字母开头,privat...阅读全文

博文 2016-02-21 04:00:00 u012992473

Golang 之 struct

声明一个struct 声明一个 struct 的语法如下: type struct_name struct { body } 例如: type Person struct { name string age uint8 } 关于 struct 字段的可见性 如果一个 struct 的字段以大写字母开头, 则表示这个字段是导出的, 即可以在其他包中访问这个字段, 例如: type Person struct { Name string age uint8 } 上面的例子中, 因为 Person 的 Name 字段是大写字母开头, 因此可以在其他包访问它, 而 age 是小写字母开头, 因此仅仅能在包内访问. struct 字面量 我们可以使用 struct 字面量来实例化一个 struct, ...阅读全文

博文 2016-08-19 13:00:00 xys1228

go中的面向对象

总体来看,go语言中的面向对象在使用方式上是灵活易用的,可以说设计理念真的很先进,让人有一种如沐春风的感觉。 如果你在学生时代经历了一个从c到c++的学习历程,你是否还记得,老师会说c++是面向对象的,所以我们不必再使用c中的结构体作为数据结构。我们只需定义的是c++中的类,因为类中不只有成员属性,也有成员函数。换句话说, class是可以完美替代struct的,而且更强大。 回到go中,我们的面向对象使用的就是struct,但时代不同了,这次我们的struct也可以有"成员函数"了。 定义一个典型的面向对象方式 package main import "fmt" type Human struct { height float32 weight int } func (h Human) B...阅读全文

博文 2017-07-20 05:04:53 Dr_Zhang

GO面向对象

GO面向对象 GO中没有隐藏的this指针 类型系统 类型系统是一个语言的类型体系,GO的类型系统包含以下基本内容: - 基础类型,如byte、int、bool、float等 - 复合类型,如数组、结构体、指针等 - 可以指向任意对象的类型 - 值语义和引用语义 - 面向对象,即所有具备面向对象特征的类型 - 接口 GO语言的类型系统: - 给任意类型添加响应的方法 type Integer int func (a Integer) Less(b Integer) bool { return a < b } 值语义和引用语义 GO语言中的大多数类型都基于值语义,包括: - 基本类型,如byte、int、bool、float32、float64和string等; - 复合类型,如数组、结构体和...阅读全文

博文 2016-04-18 12:00:04 u011409264

Go 笔记和疑问?

0. Go语言的可见性原则: - 函数名首字母小写为 private - 函数名首字母大写为 public 1. 传递变长参数 - 要加 ... - 可以全部传递, 也可以传递一个切片 - 多重传递是, 值传递 ? 引用传递(slice) 2. defer 语句 - defer语句向函数注册退出调用, 当函数退出是, defer语句才会执行, 不管函数是否正常退出都会执行. - 会保存状态吗? // 下面的调用结果是 : 0 func f(){ i := 0 defer fmt.Println(i) i++ return } - defer 用于清理工作很方便: 将关闭释放资源和打开资源物理位置放在一起. srcFile, err := os.Open("MyFile") defer src...阅读全文

博文 2015-09-30 03:00:01 roger9567

gf框架之gvalid – 强大灵活的数据校验/表单校验模块

gf提供了非常强大易用的数据校验功能,通过gvalid包提供,封装了40种常用的校验规则,支持单数据多规则校验、多数据多规则批量校验、自定义错误信息、自定义正则校验等特性。由于gf是模块化、低耦合设计,gvalid包也可以在项目中单独引入使用。 使用方式: import "gitee.com/johng/gf/g/util/gvalid" 校验规则 40种常用的校验规则: required 格式:required 说明:必需参数 required-if 格式:required-if:field,value,... 说明:必需参数(当任意所给定字段值与所给值相等时,即:当field字段的值为value时,当前验证字段为必须参数) required-unless 格式:required-unle...阅读全文

《读书笔记系列》 《The Way to Go》中文译本 知识点整理

学习某个语言后,忽然停用个半年的,很容易就忘记。又要重新学习! 所以为了快速 学习+回顾 golang,做了这个概要整理 先说下golang资料整理 The Way to Go 中文译本 4.2.1 包的概念、导入与可见性 你必须在源文件中非注释的第一行指明这个文件属于哪个包 如:package main。 package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。 包名只能是 小写字母 如果对一个包进行更改或重新编译,所有引用了这个包的客户端程序都必须全部重新编译。 导入包的写法 //method 1 import "fmt" import "os" //method 2 import "fmt";import "os" //method 3 i...阅读全文

博文 2015-10-10 03:00:23 scotth

Golang 让你欢喜、让你忧....

主题: 今天小试了一下Golang 一个小时吧! 对于习惯了C/C++ 、Python、lua语法的我,上手难度不高,很随意就写出了几个简单的小程序。 但是这个随意也让你在某些地方卡壳了一下: 1、 编译的时候,参数的问题; 2、 包引入机制方面; 3、 语法特点上面; 首先建立3个文件夹: 1、src 2、bin 3、pkg 让我恼怒: 1、 就是万恶的import 与package玩法了。 也许是为了配合build project中的自动构建吧!反正为了调试import文件,我是整了将近半小时。而且最可恨的是前面花费的25分钟我都不知道错在哪? 什么?你说我没仔细看Golang的文章!好吧,如果不仔细看,鬼才会知道import导出方法必须得首字母大写?package 是可以将一个文件切分...阅读全文

博文 2016-10-14 17:00:14 水果糖

golang操作json

Encode golang和json的类型对应关系如下: bool类型 -- JSON的Boolean 整数,浮点数等数值类型 -- JSON的Number string -- JSON的字符串(带""引号) struct -- JSON的Object (再根据各个成员的类型递归打包) 数组或切片 -- JSON的Array []byte -- 会先进行base64编码然后转换为JSON字符串 map -- JSON的Object。key必须是string interface{} -- 按照内部的实际类型进行转换 nil -- JSON的null channel,func等类型 -- 返回UnsupportedTypeError 在golang中,encoding/json包下函数Marsh...阅读全文

博文 2017-08-08 12:05:06 ifcoder

【Leetcode】:242. Valid Anagram问题 in Go语言

Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = "anagram", t = "nagaram", return true. s = "rat", t = "car", return false. Note: You may assume the string contains only lowercase alphabets. Follow up: What if the inputs contain unicode characters? How would you adapt your solution to such case? 这个问...阅读全文

博文 2016-05-23 00:00:03 u013564276

Golang学习笔记之结构体(struct)上

结构体(struct)是用户自定义的类型,它代表若干字段的集合。 • 值类型,赋值和传参会复制全部内容。可⽤ "_" 定义补位字段,⽀持指向⾃⾝类型的指针成员。 •结构体内字段⽀持 "=="、 "!=", 结构体就支持相应操作 •可⽤作 map 键类型。 一、定义 //包内使用首字母小写,包外使用首字母大写 type employee struct { firstName string lastName string age int } 二、初始化的几种方式 //初始化方式1 var emp1 employee emp1.firstName = "hello" emp1.lastName = "world" emp1.age = 20 fmt.Println(emp1) //初始化方式2利用...阅读全文

博文 2018-12-06 18:34:42 学生黄哲

golang封装结果集

之前找过很多结果集封装都不是很好,所以自己封装了下。 strFirstToUpper 字符串首字母转化为大写 /** * 封装结果集 */ func RowResult(rows *sql.Rows) []interface{} { //字典类型 //构造scanArgs、values两个数组,scanArgs的每个值指向values相应值的地址 columns, _ := rows.Columns() values := make([]sql.RawBytes, len(columns)) scanArgs := make([]interface{}, len(values)) for i := range values { scanArgs[i] = &values[i] } var r...阅读全文

博文 2016-11-29 07:00:04 yang8023tao

golang实现dns域名解析(二)

上一节已经讲了如何构造dns请求包的情况,这一节接着上一节的情况,谈谈dns查询报文中的问题部分。问题部分中每个问题的格式如下: 查询名是要查找的名字,它是一个或者多个标识符的序列。每个标识符以首字母字节的计数值来说明随后标识符的字节长度,每个查询名以最后字节为0结束,长度为0的标识符是根标识符。具体情况我们抓个包看看: 我们看到请求的名字是www.baidu.com发出的包的内容是下面的红线标识的部分,要查找的名字被转变成了3www5baidu3com这种的格式,所以我们在构造dns查询请求包的时候,需要把查询的名字格式改改: var ( buffer bytes.Buffer segments []string = strings.Split(domain, ".") ) for _, ...阅读全文

博文 2017-06-04 04:46:35 chase-wind

go语言解析json库

json库: xiezj@u197-254:~/xzjtest$ vi t2.json { "aaa":[ { "name": "Platypus", "Order": "Monotremata" }, { "Name": "Quoll", "Order": "Dasyuromorphia" } ] } 在json库的中键名不需要区分大小写 --------------------------------------- 在go中的结构成员必须要首字母大写 成员名字同json库中的健名,这里不区分大小写 type Animal struct { Name string Order string } type abc struct { AAa []Animal } 如果在go中定义的成员名字同j...阅读全文

博文 2015-06-17 23:07:45 strangerLove

go - method方法

method 1. 值与引用 varName2 = varName1 varName2.funcName() 如果 varName2 有变化,varName1 无变化,则为值类型(传递) 如果 varName2 有变化,varName1 有变化,则为引用类型(传递) 2. Method 格式: func (r [*]ReceiverType) funcName(param) (result) {...} 注: a. r 为struct对象的接收者,接收者不同,方法也不同 b. r 可以为值传递也可以为引用传递 c. param 和 result 可有可无,与普通函数一样 d. 调用方法,用 "." 连接,即 r.funcName() e. func (r *ReceiverType) fun...阅读全文

博文 2015-10-25 11:00:05 chuangrain

go 中的包 和 规范

1.go 包的概念 把相同的功能放到一个目录,称之为包 包可以被其他的包引用 main包用来生成可执行文件,每个程序只有一个main包 包可以提高代码的可复用性 2. go的规范 golang的变量函数命名需要使用驼峰命名法,且不能出现下划线, 文件名使用下划线 golang中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的 名称,如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用可以简单 的理解成: 首字母大写是公有的,首字母小写是私有的文件的命名,全小写,测试的文件: xxx_test.go 包名和文件夹名字最好一样 详情请见如下: https://golang.google.cn/doc/effective_go.html#mixed...阅读全文

C++程序员学习go基础语法

概念差异: 1.Go没有继承和虚函数,但是提供接口interface。 2.Go有指针,但是没有指针算术。 3.Go提供垃圾回收。不需要delete 4.Go的字符串类似C++的const char*。无法被修改。 5.Go少数类型是引用传递。 6.Go的对外可见是以大小写定义头字母的来识别的。C++中是Public,private。 7.Go禁止隐式类型转换。 8.Go不支持函数重载和运算符重定义。 9.Go使用nil表示无效指针。 10.左大括号{必须在当前行。 0.命名规范以及缩进 1.行末没必要有分号 ; 。 2.对外变量或函数首字母大写。 3.命名规范我本人参考的http://studygolang.com/articles/2059 1.变量 1.基础类型 var a int8 ...阅读全文

博文 2016-11-04 10:00:01 mqdChalali

golang基础<2>

以下主要描述Go语言程序结构。 一、名称的定义规范 这里包括函数、变量、常量、类型、语句标签以及包的名称都必须以字母或下划线开头,后面可以跟任意数量的字符、数字和下划线,在golang中,名称是区分大小写的,如: var Age int8与var age int8是两个不相同的变量,golang中的关键字和内置的常量、类型和函数不能作为名称来使用。 (1)关键字: var和const :变量和常量的声明 var varName type 或者 varName : = value package and import: 导入 func: 用于定义函数和方法 return :用于从函数返回 defer someCode :在函数退出之前执行 go : 用于并行 select 用于选择不同类型的通...阅读全文

博文 2018-01-19 10:30:01 cw2030

Golang开发中遇到的一些问题。

1. 结构体中的属性的首字母大小写问题。 出现场景:MongoDB的golang驱动:mgo的数据存储,小写的字段不能存储 原因:golang的小写代表是私有函数或者私有属性。 2.函数的参数的 指针变量 和 非指针变量问题。 出现场景:beego的controller的TplName 指定无效。 原因:非指针参数的复制...阅读全文

博文 2016-09-17 10:00:10 ribavnu

go-面向对象编程(上)

一个程序就是一个世界,有很多对象(变量) Golang 语言面向对象编程说明 Golang 也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对 象语言。所以我们说 Golang 支持面向对象编程特性是比较准确的。 Golang 没有类(class),Go 语言的结构体(struct)和其它编程语言的类(class)有同等的地位,你可 以理解 Golang 是基于 struct 来实现 OOP 特性的。 Golang 面向对象编程非常简洁,去掉了传统 OOP 语言的继承、方法重载、构造函数和析构函 数、隐藏的 this 指针等等 Golang 仍然有面向对象编程的 继承,封装和多态的特性,只是实现的方式和其它 OOP 语言不 一样,比如继承 :Golang 没有 ...阅读全文

GO 语言学习 包 探究

GO语言中包是函数和数据的集合。 用package关键字定义一个包,包名的约定是使用小写字符。 包中的函数名以大写字母启始的是可导出的,及可以在包外部调用 GO 包的编译使用 go build 安装使用 go install 包命名规则:小写字母的一个单词,不应有下划线或混合大小写。 包名是导入的默认名称,可以使用其他名称来代替默认名称: import bar "bytes" 则 函数Buffer可以通过bar.Buffer来访问。 包的测试:go test 需要编写test文件,在test文件中以 packe XXX (XXX是要测试的包)开头, 并且导入 testing包 import "testing"。 测试函数都有相同的标识,名字以Test开头: func TestXxx(t *t...阅读全文

博文 2015-06-17 23:01:17 phlong999

go圣经笔记--第二章

2.1 命名 1) 一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。 大写字母和小写字母是不同的。 2) 关键字有25个;关键字不能用于自定义名字,只能在特定语法结构中使用。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 3) 还有大约30多个预定义的名字,比如int和true等,主要对应内建的常量、类型和函数。 内建常量: true false iota nil 内建类型: int ...阅读全文

博文 2016-04-18 05:00:02 betterjun30

go语言学习笔记之前言部分

前言 1、针对权限访问修饰符的规范 go语言要求public修饰的变量以大写字母开头 以private修饰的变量以小写字母开头 这样可以直接免除public和private关键字 2、花括号位置规范 if expression{ if expression ...... { ...... } } 这种是正确的写法 这种是错误的写法 3、go语言的错误处理机制优势,有error类型 4、用go语言模仿继承时,若充当父类的结构体a与充当子类的结构体b中有相同名称的属性v,在b调用a的方法输出v的值时,打印输出的会是父类属性值 例如下列代码: package main import "fmt" type Dog struct { name string } type BDog struct { D...阅读全文

博文 2015-09-17 07:00:00 zhaomingwei

golang笔记

查看文档 在本地浏览器查看文档 cmd中输入godoc -http=:8080 然后访问浏览器的localhost:8080 类型判断 首字母大写为public,首字母小写为private 内置关键字全部为小写 别名 import 别名 "包名" 类型转换 var a float =100.1 b := int(a) int转string:strconv包中的Itoa方法 string转int:strconv包中的Atoi方法 常量 const a int =1 内部常量命名 cMAX _MAX 指针 go语言有指针,但是不支持指针运算以及"->"运算符,直接采用"."选择符来操作指针目标对象 -操作符"&"取变量地址,使用"*"通过指针间接访问目标对象 -默认值为nil a:=1 var ...阅读全文

博文 2015-11-01 17:00:01 mitos_yggdrasill

golang plugin小谈

在1.8之前,如果我们想用第三方的库,只能获取到源码才可以,而不能使用编译后的代码,比如jar、dll、so文件。不过1.8中新加入了plugin包,我们可以通过这个包来实现调用、访问编译后方法和变量的功能,不过到目前版本(1.11.1)为止还不支持windows(几年没碰过这超恶心的os了,真嗨森。。。)。 plugin 是一个包含可导出(首字母大写)函数和变量的main包。当一个plugin首次被打开的时候,是在所有包中的init方法已经调用完成之后,main方法执行之前。一个plugin只会被初始化一次,并且不会被关闭。plugin的操作都是协程安全的。 下面我们将会举个例子说明plugin包如何使用(类型转换,函数传参调用,修改变量的值)。plugin.go: package mai...阅读全文

博文 2018-11-15 01:34:40 UUID

go 速学 - 02 - 包与可见性

目录 包与可见性 包 基本结构 别名 可见性规则 摘要 导入多个包,包的别名,可见性 包与可见性 包 基本结构 包的基本结构如下 //程序运行的入口是包 `main`。 package main //导入包 "fmt" 和 "math/rand" import ( "fmt" "math/rand" ) //或 import std "fmt" //指定别名 import "math" // 常量的定义 const PI = 3.14 // 全局变量的声明与赋值 var name = "gopher" // 一般类型声明 type newType int // 结构的声明 type gopher struct{} // 接口的声明 type golang interface{} // 函数的...阅读全文

博文 2015-06-18 09:02:17 mrseasons

go 语言学习 – 包的用法

用import 引入公共包或自己定义的包 类似 c 中的include ,按照教程,写了一个判断一个数是否是偶数的包 在当前目录下 mkdir even ,进入目录,vi even.go 写入如下代码 package even func Even(a int ) bool { state := false if a%2 == 0 { state= true } return state } 然后写一个测试程序 : package main import "./even" func main() { a:= 3 if even.Even(a) { println("is even") }else{ println("not a even") } } 两点要注意的地方,1 ,引入even 的函数...阅读全文

博文 2015-02-26 17:00:01 fx397993401

Golang json文件处理

JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是。JSON由于比XML更小、更快,更易解析,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。目前我们看到很多的开放平台,基本上都是采用了JSON作为他们的数据交互的接口。既然JSON在Web开发中如此重要,那么Go语言对JSON支持的怎么样呢?Go语言的标准库已经非常好的支持了JSON,可以很容易的对JSON数据进行编、解码的工作。 以如下JSON源文件为例...阅读全文

博文 2019-03-08 18:34:39 北春南秋