7. Go 语言数据类型:指针

Hi,大家好。 我是明哥,在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime 0. 什么是指针 当我们定义一个变量 name var name string = "Go编程...阅读全文

Go 1.14 新特性之 Goroutine 抢占式调度

代码示例 有这样一段 Go 代码,在程序执行之初将 P 设置到数量为 1,有两个 goroutine,一个是 main,一个是执行死循环的匿名函数: package main import ( "fmt" "runtime" "time" ) func main() { runtime.GOMAXPROCS(1) fmt.Println("The program starts ...") go func() { for { } }() time.Sleep(time.Second) fmt.Pr...阅读全文

Segmentfault 2020-05-01 16:32:33 Xavier

让我们一起啃算法----有效的括号

有效括号(Valid-Parentheses) 题干如下: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 1.左括号必须用相同类型的右括号闭合。 2.左括号必须以正确的顺序闭合。 3.注意空字符串可被认为是有效字符串。示例 1: 输入: "()" 输出: true示例 2: 输入: "()[]{}" 输出: true示例 3: 输入: "(]" 输出: false示例 4: 输入: "([)]" 输出: false示例 5: 输...阅读全文

Segmentfault 2020-05-01 16:32:33 三斤和他的朋友们

GoFrame工具链【含视频】

本教程主要对GoFrame框架提供的工具链进行了基本介绍 ,教程仅有不到一个小时 ,可以对gf-cli有一个基本的了解; ## GoFrame工具链 ### 内容介绍 GF工具链介绍:主要讲解安装,更新,项目初始化,热编译,交叉编译,model生成,打二进制包,docker等 ### 目录结构 - [17.GoFrame工具链之基本介绍](https://gitee.com/goflyfox/gfstudy/blob/master/doc_gf_tool_cha...阅读全文

Go语言中文网 2020-04-29 10:43:44 zcool321

leetcode-hot-(1/100)

1/100-两数之和 问题描述 link-to-leetcode 解法一:暴力搜索 暴力搜索是最简单的方法(笔者觉得从暴力搜索不断优化的过程是一个有趣的过程)时间复杂度:O(N^2)空间复杂度:O(1) func twoSum(nums []int, target int) []int { // loop: // 选择第一个数字 // 遍历后面的数字: // if 两个数字的和==target,then 输出结果 // 继续选择下一个数字 for i := 0; i < len(nums); i...阅读全文

Segmentfault 2020-04-30 15:32:34 zhangshaos

一款golang style语法的golang orm库

最近开源了gosql 一款golang style语法的golang orm库. 优雅的语法,支持批量插入,轻松嵌套条件,处理各种复杂的查询sql,诸如: and 和or组合全语法支持: for update锁,is null, exists 子查询等基本上所有sql语法 风格如下: user := &UserModel{} err := db.Fetch(user, gosql.Columns("id","name"), gosql.Where("id", 1), gosql.Where("[...阅读全文

Segmentfault 2020-04-30 10:32:34 mlboy

go怎样做stw

原文链接: Go: How Does Go Stop the World? : Author : Vincent Blanchon 本文基于 go 1.13 在垃圾回收算法中,Stop The Word(STW)是一个很重要的概念,他会中断程序运行,添加写屏障,以便扫描内存 ,现在一起来看看它内部的原理以及可能存在的问题 STW 停止程序运行意味着停止所有运行态的goroutines,一个简单的例子: func main() { runtime.GC() } 运行垃圾回收算法将触发两个阶段的ST...阅读全文

Segmentfault 2020-04-30 09:32:35 yixiao

7. Go 语言数据类型:指针

Hi,大家好。 我是明哥,在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:http://golang.iswbm.com我的 Github:github.com/iswbm/GolangCodingTime 0. 什么是指针 当我们定义一个变量 name var name string =...阅读全文

Segmentfault 2020-04-30 16:32:35 Python编程时光

GO函数

/* 格式: func function_name( [parameter list] ) [return_types]{ 函数体 } func:func声明 function_name:函数名称 [parameter list]:参数列表 return_types:返回类型,不需要返回值的,return_types可以不写。 函数体:函数体 */ package main import ( "fmt" ) func main() { //定义局部变量 var a int = 55555 var...阅读全文

51CTO博客 2020-04-28 22:38:29 赛里

GO 循环

for循环三种形式:一、for init; condition; post { }1、inti赋初值;2、condition判断是否满足给定条件,如果值为真,则执行循环体内语句,然后再执行 post。之后进入第二次循环,condition判断是否满足给定条件,否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。 for a := 0; a < 100; a++ { fmt.Printf("a 的值为: %d\n", a) }二、for condition { ...阅读全文

51CTO博客 2020-04-28 15:29:35 赛里

golang分层测试之http压测脚本编写(2)

前言 前一篇文已经简单讲解怎么通过goroutines的能力编写并发http压测脚本,但前文有提到过,主线程为了等待goroutine都运行完毕,不得不在程序的末尾使用time.Sleep() 来睡眠一段时间,等待其他线程充分运行。对于简单的代码,100个for循环可以在1秒之内运行完毕,time.Sleep() 也可以达到想要的效果,但是对于大多数真实业务和工作场景来说,1秒肯定会不够的,并且大部分时候我们都无法预知for循环内代码运行时间的长短。这时候就不能使用time.Sleep() 来完...阅读全文

简书 2020-04-29 00:34:28 周学习的名字被占了

2020 区块链 golang 版本(7)

封面 我们知道比特币的安全性来源 hash 加密和共识机制,所以我们今天聊一聊比特币中的共识机制。 分布式共识 分布式的 hash 表,系统有很多计算机,这些计算机共同来维护一个 hash 表。 Alice -> 12345 下面介绍关于分布式两个结论 关于分布式 FLP impossibility result 在一个异步系统里(网络延时没有上限),即使一个成员是有问题,也就是无法取得共识。 CAP Theorem C(Consistency) A(Availability) P(Partit...阅读全文

go语言实战阅读笔记

我只把值得记录的写一下。 1, _ "github.com..." 的方式导入包, 不是忽略包, 也不是其他类要用这个包。我原来理解错误。 这句话的意思是让编译器接受包导入, 并执行包里面所有文件的init函数。 我测试了一下, 他把引入包的所有init 函数都执行了一遍, 顺序我测试的结果是按字母排序的 2, 在 Go 语言中,所有变量都被初始化为其零值。对于数值类型, 零值是 0;对于字符串类型, 零值是空字符串;对于布尔类型, 零值是 false;对于指针,零值是 nil。 其他都懂, 但...阅读全文

简书 2020-04-29 00:34:27 蛐蛐儿阳

Golang调用C代码

一、直接写在GO文件中 package main /* #include <stdio.h> void demo(){ printf("HELLO WORLD! \n"); } */ import "C" func main() { C.demo() } 构建方式 go build go build main.go 注: 这种方式只适合代码量特别小的场景 二、写在独立文件中但必须跟main.go文件同一目录 目录结构 . ├── README.md ├── demo.c ├── demo.h └...阅读全文

简书 2020-04-29 00:34:27 gsp412

Golang的压测工具 hey源码分析

项目地址:https://github.com/rakyll/hey项目简介:HTTP负载发生器,是ApacheBench(ab)替代品用法:选项:-n 运行的的请求数。默认200.-c 并发运行请求数,请求数不能小于并发级别。默认值50-q 速率限制,已每秒查询(QPS)为单位。默认没有限制。-z 发送请求的应用程序配置,当时间到了应用程序停止并退出,如果指定了持续时间,则忽略n-o 输出类型。如果没有提供就打印在终端。csv是唯一支持的替代方案,转储文件的响应以逗号分割。 -m HTTP m...阅读全文

简书 2020-04-29 00:34:27 lizhengxiang

Golang海量用户即时通讯系统

1.实现功能-显示客户端登录菜单 client/main.go package main import ( "fmt" "os" ) var userId int var userPwd string func main() { //接收用户选择 var key int //判断是否还继续显示菜单 var loop = true for loop { fmt.Println("--------海量用户即时通讯系统--------") fmt.Println("\t\t 1.登录聊天系统") fm...阅读全文

简书 2020-04-29 00:34:26 DoneIsBetter

一、Go语言由来与关键时间线

本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言。 全文使用环境如下: Go语言版本:1.14 操作系统:deepin 使用工具:Goland开发工具 Go语言,又称作Golang,是Google在2009年11月开源的开发语言。是一门静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 Go是罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Tay...阅读全文

简书 2020-04-29 00:34:25 cn華少