随笔分类 -  Golang

摘要:package main import ( "strconv" "fmt" ) func main() { // 使用ParseFloat解析浮点数,64是说明使用多少位 // 精度来解析 f, _ := strconv.ParseFloat("1.234", 64) fmt.Println(f) // 对于ParseInt函数,0 表示... 阅读全文
posted @ 2018-09-14 11:59 温柔的风 阅读(15588) 评论(0) 推荐(0) 编辑
摘要:package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) x := rand.Intn(100) //生成0-99随机整数 fmt.Println... 阅读全文
posted @ 2018-09-13 23:15 温柔的风 阅读(7765) 评论(0) 推荐(0) 编辑
摘要:Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。 阅读全文
posted @ 2018-09-13 21:53 温柔的风 阅读(15802) 评论(0) 推荐(0) 编辑
摘要:map就相当于php语言中的关联数组 补充:判断一个不存在的key 阅读全文
posted @ 2018-09-13 02:06 温柔的风 阅读(17898) 评论(0) 推荐(0) 编辑
摘要:二分查找法就是实现在一组有序的数字数组集合中最快找到指定元素的下标 思路 ①先找到中间的下标middle = (leftIndex + RightIndex) /2 ,然后让中间的下标值和FindVal比较a:如果arr[middle] > FindVal,那么就向LeftIndex~(midlle 阅读全文
posted @ 2018-09-13 01:49 温柔的风 阅读(2302) 评论(0) 推荐(0) 编辑
摘要:关于冒泡排序的原理请看本博客这篇文章冒泡排序法原理讲解及PHP代码示例 阅读全文
posted @ 2018-09-12 22:21 温柔的风 阅读(1125) 评论(0) 推荐(0) 编辑
摘要:概念 切片(slice)是建立在数组之上的更方便,更灵活,更强大的数据结构。切片并不存储任何元素而只是对现有数组的引用。 三种方式及细节案例 ①定义一个切片,然后让切片去引用一个已经创建好的数组 ②通过make来创建切片。基本语法:var 切片名 []type = make([], len, [ca 阅读全文
posted @ 2018-09-12 20:56 温柔的风 阅读(34330) 评论(0) 推荐(1) 编辑
摘要:package main import ( "fmt" ) func main() { //获取一个数组里最大值,并且拿到下标 //声明一个数组5个元素 var arr [5]int = [...]int {6, 45, 63, 16 ,86} //假设第一个元素是最大值,下标为0 maxVal := arr[0] maxIndex... 阅读全文
posted @ 2018-09-03 08:57 温柔的风 阅读(11006) 评论(0) 推荐(0) 编辑
摘要:数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其长度是固定的,不能动态变化。 var arr[]int,这个arr就是slice切片。 数组中的元素可以是任何数据类型,包括值类型和引用类型,但不能混用(不能int和float混用) 数组创建后,如果没有赋值,是有默认值的,数值类型默认是0; 阅读全文
posted @ 2018-09-02 22:52 温柔的风 阅读(2765) 评论(0) 推荐(0) 编辑
摘要:package main import ( "fmt" ) func main() { var arr1 [3]int = [3]int{1, 2, 3} //定义并初始化长度为3的数组 fmt.Println(arr1) //[1 2 3] arr2 := [...] int {20:-1} //长度为20的数组,只有最后一个是-1,其他都是0 ... 阅读全文
posted @ 2018-09-01 11:04 温柔的风 阅读(2173) 评论(0) 推荐(0) 编辑
摘要:在默认情况下,当发生错误(panic)后,程序就会终止运行 如果发生错误后,可以捕获错误,并通知管理人员(邮件或者短信),程序还可以继续运行,这当然无可厚非 errors.New("错误信息"),会返回一个error类型的值,表示一个错误 panic内置函数,接收一个interface()类型的值( 阅读全文
posted @ 2018-08-30 22:06 温柔的风 阅读(5176) 评论(0) 推荐(0) 编辑
摘要:new函数用来分配内存,主要分配值类型,比如int、float32、struct等,返回的是指针 待补充: make:用来分配内存,只要分配引用类型,比如chan、map、slice 阅读全文
posted @ 2018-08-30 10:23 温柔的风 阅读(1675) 评论(0) 推荐(0) 编辑
摘要:测试函数执行时间 阅读全文
posted @ 2018-08-21 13:03 温柔的风 阅读(4125) 评论(0) 推荐(0) 编辑
摘要:package main import ( "fmt" "strings" ) func main(){ //返回字符在指定字符串中最后一次出现的位置 last_index := strings.LastIndex("Hello World", "l") fmt.Printf("last_index=%v\n", last_index) /... 阅读全文
posted @ 2018-08-20 23:08 温柔的风 阅读(733) 评论(0) 推荐(0) 编辑
摘要:package main import ( "fmt" "strings" "strconv" ) func main(){ //返回字符串的(字节)长度,相当于PHP的strlen str := "hello世界" //11 ,golang的编码统一为utf-8,字母和数字分别占一个字节,汉子占用3个字节 // str := "hello"... 阅读全文
posted @ 2018-08-20 10:08 温柔的风 阅读(230) 评论(0) 推荐(0) 编辑
摘要:闭包案例 说明 以上代码返回的是一个函数,这个函数引用的是suffix,而suffix是函数外的变量,那么这个函数外的suffix和返回的函数构成闭包。 普通函数 对比说明 闭包函数只需要传递一次要测试的jpg后缀;用普通函数的话,传递完成后缀会消失,闭包会保存。 阅读全文
posted @ 2018-08-17 20:16 温柔的风 阅读(467) 评论(0) 推荐(0) 编辑
摘要:概念闭包就是一个函数与其相关的引用环境组成的一个整体。闭包本质其实是一个函数,但是这个函数会用到函数外的变量,它们共同组成的整体我们叫做闭包。 简单举例说明 当反复调用test函数时,因为n是只初始化一次,因此每次调用一次就进行累计,而不会初始化。变量n永远隐式存在于test中 进一步说明 阅读全文
posted @ 2018-08-17 12:18 温柔的风 阅读(576) 评论(0) 推荐(0) 编辑
摘要:概念所谓匿名函数,就是没有名字的函数匿名函数的两种使用方式一、在定义匿名函数的时候就可以直接使用(这种方式只使用一次) 二、将匿名函数赋给一个变量(函数变量),再通过该变量来调用匿名函数 全局匿名函数 全局匿名函数就是将匿名函数赋给一个全局变量,那么这个匿名函数在当前程序里可以使用 阅读全文
posted @ 2018-08-15 17:00 温柔的风 阅读(8839) 评论(3) 推荐(1) 编辑
摘要:常见的值类型和引用类型分别有哪些? 值类型:基本数据类型 int 系列, float 系列, bool, string 、数组和结构体struct,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值通常存储在栈中。 引用类型:指针、slice切片、map、管道chan、interface 等 阅读全文
posted @ 2018-08-14 18:38 温柔的风 阅读(910) 评论(0) 推荐(0) 编辑
摘要:一、指针的相关概念说明 变量:是基本类型,变量存的就是值,也叫值类型 地址:用于引用计算机的内存地址,可理解为内存地址的标签,通俗一点讲就是一间房在小区里的门牌号。如下图① 指针:指针变量存的是一个地址,这个地址指向的空间存的才是值(表示地址的指向,指针是一个指向另一个变量内存地址的值)。如下图② 阅读全文
posted @ 2018-08-10 11:37 温柔的风 阅读(1007) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示