自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 收藏
  • 关注

原创 golang创建动态二维数组

搜了一圈也没看到我想要的,下面附上代码:package mainimport ( "fmt")func main() { n := 2 m := 3 //动态创建二维数组 grid := make([][]int, n) for i := 0; i < n; i++ { grid[i] = make([]int, m) } /* 000 000 */ for i := 0; i < n; i++ { for j := 0; j < m;

2020-07-17 13:01:35 7875 2

原创 npm发布nodejs包

具体操作可以看这个链接:https://blog.csdn.net/qq_27053493/article/details/96472809接下来说几个可能会发生的错误1.npm ERR! 403 403 Forbidden - PUT http://registry.npmjs.org/my_module_for_test - You do not have permission to publish "my_module_for_test".说明package.json中登记的name已近被

2020-07-12 14:07:37 394

转载 Ubuntu使用git安装nvm

转载:https://blog.csdn.net/geol200709/article/details/82117103

2020-07-06 11:31:15 607

转载 protobuf官方中文文档

https://www.jianshu.com/p/4443c28d4bf7

2020-06-27 00:03:32 6309

原创 Linux中使用twirp搭建rpc框架

1.安装protobuf-compiler执行apt-get update命令时因为使用的是官方源,速度会慢,而且有的包会下载不全,建议先把源换成国内的源,我用的是网易的,体验很不错换源操作:https://www.cnblogs.com/webnote/p/5767853.html然后使用以下两条命令sudo apt-get updatesudo apt install protobuf-compiler2.安装go环境...

2020-06-12 16:12:15 480

原创 go get -u github.com/速度太慢,没反应的问题解决了

先执行以下命令换代理go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.io,direct再执行go get -u github.com/golang/protobuf/protoc-gen-go成功下载转载于:https://blog.csdn.net/qq_35941092/article/details/104986253?utm_medium=distribute.pc_relevant.none-task.

2020-06-11 15:20:22 2952

原创 gqlgen学习总结

1.要有go.mod和go.sum这两个文件才能去执行go run github.com/99designs/gqlgen去更新generated.go和models_gen.go,在没有这两个文件的时候去执行该命令,会把generated.go文件删除2.要执行了go mod init github.com/[username]/[project]才能生成go.mod3.要执行了go get github.com/99designs/gqlgen才能生成go.sum4.在generated.g

2020-06-10 23:26:08 1801

原创 40个flutter入门实例详解(八)

39.跨组件状态共享导入插件:provider: ^4.0.4导入包 :import 'package:provider/provider.dart';核心代码 :class MyHomePage2 extends StatelessWidget { @override Widget build(BuildContext context) { //订阅者,订阅ProviderDemoNotifier,在根节点声明 return ChangeNotifier

2020-06-07 16:00:33 371

原创 40个flutter入门实例详解(七)

35.监听滚动事件class ScrollControllerTestRoute extends StatefulWidget { @override ScrollControllerTestRouteState createState() { return new ScrollControllerTestRouteState(); }}class ScrollControllerTestRouteState extends State<ScrollController

2020-06-07 14:23:32 537

原创 40个flutter入门实例详解(六)

29.旋转import 'dart:math' as math;DecoratedBox( decoration:BoxDecoration(color: Colors.red), child: Transform.rotate( //顺时针旋转90度 angle: math.pi/2, child: Text("Hello world"), ), )效果:30.缩放

2020-06-06 16:20:17 423

原创 40个flutter入门实例详解(五)

21.流式布局Wrap( spacing: 8.0, // 主轴(水平)方向间距 runSpacing: 4.0, // 纵轴(垂直)方向间距 alignment: WrapAlignment.center, //沿主轴方向居中 children: <Widget>[ new Chip( //avatar: new CircleAvatar(backgroundColor: Colo

2020-06-06 14:12:00 359

原创 40个flutter入门实例详解(四)

17.表单class FormTestRoute extends StatefulWidget { @override _FormTestRouteState createState() => new _FormTestRouteState();}class _FormTestRouteState extends State<FormTestRoute> { //文本框的控制器,通过它可以设置/获取编辑框的内容、选择编辑内容、监听编辑文本改变事件 TextEdi

2020-06-06 11:44:14 412

原创 40个flutter入门实例详解(三)

8.父Widget管理子Widget的状态class ParentWidget extends StatefulWidget { @override _ParentWidgetState createState() => new _ParentWidgetState();}class _ParentWidgetState extends State<ParentWidget> { //state的数据 bool _active = false; void

2020-06-05 20:17:02 286

原创 40个flutter入门实例详解(二)

3.页面的切换跳转class RouterTestRoute extends StatelessWidget { @override Widget build(BuildContext context) { return Center( child: RaisedButton( onPressed: () async { // 异步执行转为同步执行,必须等待结果返回后才往下执行 var result = await N

2020-06-05 16:08:32 324

原创 40个flutter入门实例详解(一)

1.计数器实例//导入Material UI组件库import 'package:flutter/material.dart';//import 'package:english_words/english_words.dart';//应用程序的入口runApp方法,启动flutter项目,runApp接收一个Widget参数void main() { runApp(MyApp());}//根组件,继承了StatelessWidget类class MyApp extends Stat

2020-06-05 14:12:14 1221

原创 react hook学习总结

1.使用useState来代替react中的this.state和this.setStateconst [count, setCount] = useState(0);把0赋值给count变量,可以用{count}调用变量,可以用setCount改变count变量的值2.useEffect用来等代替原来的生命周期:componentDidMount(第一次渲染后调用)、componentDidUpdate(第二次以后渲染后调用)、componentWillUnmount(组件卸载后调用)

2020-06-03 16:28:14 328

原创 react学习总结

1.如果通过CDN方式引入React,建议设置crossorigin属性,可以有更好的错误处理体验<script crossorigin src="..."></script>2.JSX可以防注入攻击3.JSX就是用<></>或</>来代表元素,底层其实也是调用了createElement4.大多数 React 应用只会调用一次 ReactDOM.render()5.组件有两种形式:函数组件和class组件functio

2020-06-02 22:17:36 298

原创 typescript学习总结

1.typescript文件后缀是.ts,需要执行tsc命令编译为.js文件,再使用node命令执行.js文件2.tsc命令的安装可以使用yarn global add tsc,再将yarn依赖安装的全局路径写入环境变量,就可以使用了3.typescript的变量声明:var/const 变量名:类型=值4.typescript的类型:string字符串、number整数或浮点数、any任何类型、boolean布尔类型、any[]数组、[number,string]元组、void无返回值、nev

2020-06-02 14:38:54 395

原创 nodejs学习总结

1.yarn全局安装依赖(可以直接在命令行使用)yarn global add 依赖名//将会安装到全局路径2.yarn本地安装依赖yarn add 依赖名//会在node_modules文件夹下加入依赖3.yarn初始化一个项目,生成package.jsonyarn init4.yarn安装项目全部依赖yarn或yarn install5.yarn 安装包依赖时候的 `devDependencies` 和 `dependencies` 的区别是什么devDep

2020-05-31 01:39:21 465

原创 vscode搭建环境创建flutter项目

1.下载vscode(自行下载)2.在vscode的应用商店中安装flutter插件和dart插件(在应用商店搜索框搜索即可)3.下载android studio4.下载flutter sdk下载地址: https://flutter.dev/docs/development/tools/sdk/releases ,拼接到用户变量Path的后面(记得加分号;)就可以使用flutter命令了,比如我的是:D:\flutter\flutter\bin运行 flutter doctor命

2020-05-29 22:21:22 1751

原创 HTTP Headers在twirp框架中的使用

1.可以在客户端设置发送带有HTTP Headers的requestfunc main() { client := haberdasher.NewHaberdasherProtobufClient("http://localhost:8080", &http.Client{}) header := make(http.Header) header.Set("Twitch-Authorization", "uDRlDxQYbFVXarBvmTncBoWKcZKqrZTY") header

2020-05-28 16:07:20 294

原创 Windows中使用twirp搭建rpc框架

1.安装protobuf complier链接:https://pan.baidu.com/s/1HcCTttxZHJYopu-YwUl6PQ 提取码:3rub把下载好的protoc.exe文件放到你的$GOPATH/bin下,并且保证你的$GOPATH/bin目录已经导入到环境变量中2.安装protoc-gen-go到https://github.com/golang/protobuf 把库文件克隆下来,再执行下面的命令生成protoc-gen-go.exe到$GOPATH/bin中

2020-05-28 12:33:00 631

原创 gorm学习总结(四)

58.一对一type User struct { gorm.Model Profile Profile ProfileID int}type Profile struct { gorm.Model Name string}db.Model(&user).Related(&profile)// SELECT * FROM profiles WHERE id = 111; // 111是user的外键ProfileID61.一对多// .

2020-05-27 15:37:02 299

原创 gorm学习总结(三)

42.Scopes的使用(将当前数据库连接传递到func(*DB) *DB,可以用于动态添加条件)func AmountGreaterThan1000(db *gorm.DB) *gorm.DB { return db.Where("amount > ?", 1000)}func PaidWithCreditCard(db *gorm.DB) *gorm.DB { return db.Where("pay_mode_sign = ?", "C")}db.Scopes(A

2020-05-27 14:02:37 959 1

原创 gorm学习总结(二)

19.获取第一条记录,按主键排序var user Userdb.First(&user)fmt.Println(user)20.获取最后一条记录,按主键排序db.Last(&user)21.获取所有记录var users []Userdb.Find(&users)fmt.Println(users)22.使用主键获取记录(id=10)db.First(&user, 10)23.获取第一个匹配记录db.Where("name

2020-05-27 02:49:16 920

原创 gorm学习总结(一)

1.安装go get -u github.com/jinzhu/gorm2.连接数据库(以Mysql为例)import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql")func main() { db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc

2020-05-27 02:07:07 947

原创 使用gqlgen搭建GraphQL服务器

1.创建项目创建gqlgen-todos目录切换到gqlgen-todos目录执行以下命令:go mod init github.com/[username]/gqlgen-todosgo get github.com/99designs/gqlgen2.搭建服务器创建项目骨架,执行以下命令:go run github.com/99designs/gqlgen init命令执行完后,项目骨架结构如下:├── go.mod├── go.sum├── gqlgen.ym

2020-05-26 00:29:31 678

原创 GraphQL基础教程

1.字段的使用query Hero{ hero { name }}分析:name是hero字段的字段,由于GraphQL的查询与其结果是一致的,所以可以通过改变字段来改变想查询的结果2.参数的使用query Human{ human(id: "1000") { name height }}分析:通过传入参数进行条件查询3.别名的使用query Hero{ empireHero: hero(id: "1") { name

2020-05-25 14:32:06 636

原创 golang中os包常用的api

1.func Getwd() (pwd string, err error)//返回命令执行的当前目录dir, _ := os.Getwd()fmt.Println(dir)//C:\Users\Administrator\go\src\testgo\test\test2.func Exit(code int)//中断函数fmt.Println("这个是匿名函数")os.Exit(1) //exit status 13.func Hostname() (name string,

2020-05-25 01:05:39 412

原创 golang中strconv包常用的api

1.func Atoi(s string) (i int, err error)//string->intnum, _ := strconv.Atoi("123")fmt.Println(num)//1232.func Itoa(i int) string//int->stringstr := strconv.Itoa(123)fmt.Println(str)//"123"3.func ParseFloat(s string, bitSize int) (f floa

2020-05-25 00:39:46 238

原创 golang中的math包常用的api

1.funcAbs(xfloat64)float64//求绝对值fmt.Println(math.Abs(-1.11))//1.112.funcPow(x,yfloat64)float64//求x的n次方fmt.Println(math.Pow(2, 16))//655363.funcSqrt(xfloat64)float64//取x的开平方fmt.Println(math.Sqrt(64))//84.funcCbrt(xfloat64)floa...

2020-05-25 00:19:13 373

原创 golang中bufio包常用的api

1.func Peek(n int)([]byte,Error){}//返回一个Reader对象s := strings.NewReader("hello world")//对Reader对象进行封装,返回一个带bufio缓冲的Reader对象br := bufio.NewReader(s)//返回前5个元素的字节的切片b, _ := br.Peek(5)b[0] = 'a'b, _ = br.Peek(5)fmt.Println(b)//[97 101 108 108 111]2

2020-05-24 23:22:07 625

原创 golang中strings包常用的api

1.strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头str := "Hello World"fmt.Println(strings.HasPrefix(str, "He")) //true2.strings.HasSuffix(s string, suffix string) bool:判断字符串s是否以suffix结尾str := "Hello World"fmt.Println(strings.HasS

2020-05-24 17:28:34 442

原创 golang练手项目之聊天室

client.gopackage mainimport ( "bufio" "fmt" "net" "os")//让用户能后续输入数据func scandata(conn net.Conn) { //for{}死循环保证用户不止能输入一次数据 for { //使用bufio包结合缓冲区获取输入,可以使输入不受空格的影响 inputReader := bufio.NewReader(os.Stdin) buf, _, _ := inputReader.ReadLine

2020-05-24 16:11:19 491

原创 golang入门实例分析(五)

28.并发的简单使用import ( "fmt" "time")func say(str string){ for i:=0;i<5;i++{ time.Sleep(1000*time.Millisecond) fmt.Println(str) }}func main() { go say("f1") say("f2")}29.不带缓冲的通道func sum(s []int, c chan int) { sum := 0 for _, v := ran

2020-05-22 23:07:32 509

原创 golang入门实例分析(四)

20.截断数组时,slice切片中的len()、cap()的变化func main() { var arr = [5]int{1, 2, 3, 4, 5} s1 := arr[:] s2 := arr[1:] s3 := arr[:3] s4 := arr[1:3] s5 := make([]int, 3, 5) printSlice(s1) //5 5 [1 2 3 4 5] printSlice(s2) //4 4 [2 3 4 5] printSlice(s3) //3 5 [

2020-05-22 22:04:07 244

原创 golang入门实例分析(三)

13.数组的使用func main() { var arr = [5]int{1, 2, 3, 4, 5} for i := 0; i < 5; i++ { fmt.Println(arr[i]) }}14.多维数组的使用func main() { var arr = [2][2]int{{1, 2}, {3, 4}} for i := 0; i < 2; i++ { for j := 0; j < 2; j++ { fmt.Print(arr[i

2020-05-22 16:49:27 223

原创 golang入门实例分析(二)

7.{}的使用//正确用法if(){}//错误用法if(){}8.输入数据函数fmt.Scan(&s)9.golang没有while10.switch的两种用法func main() { var grade string = "B" var mark int = 90 switch mark { case 90: grade = "A" fallthrough case 80, 91: grade = "B" case 70:

2020-05-22 15:36:09 270

原创 golang入门实例分析(一)

1.导入不同文件夹下的函数--文件结构test--test.gomath--math1.go//test.gopackage mainimport ( "fmt" mathClass "testgo/math")func main() { fmt.Println("Hello World") fmt.Println(mathClass.Add(1, 2))}//math1.gopackage mathClassfunc Add(x,y int) int {

2020-05-22 14:31:49 352

原创 vscode+golang环境搭建

1.下载vscode,不需要做什么配置,一路next即可2.打开vscode,点击左侧的[扩展],即从上到下的第五个图标3.在搜索框中输入go,下载go插件4.下载完成后,使用快捷键ctrl+shift+p,在搜索框中输入go:install/Update Tools,选中全部选项5.慢慢等待全部Tools下载完成即可6.下载完成后,可以自己创建一个test.go,通过命令go run test.go去测试是否成功安装...

2020-05-22 12:31:22 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除