go

JS简单所学

徘徊边缘 提交于 2020-10-18 09:20:33
JS JavaScript 是一种轻量级的编程语言。 与HTML,CSS相比 相同点:代码都可以在浏览器上运行、运行环境是浏览器 不同点:HTML,CSS不叫编程语言,JS是编程语言,其运行环境不只是浏览器,还可以在其他环境中运行 一、JS能做什么: 1)开发网站 2)开发app 3)小程序 4)游戏开发 小程序游戏 网页游戏 5)写后端 node.js 6)嵌入式 c 7)区块链 .... 二、JS的基本语法 1)JS是区分大小写 var a = 1; var A = 2; 2)忽略空白符(空格 换行 tab) 3)语句分号可加可不加 4)注释 //单行注释 /*多行注释*/ 注释是给我们程序猿看的 5)标识符 和 关键字 var a = 110; var 关键字 a变量名标识符 6)...... 三、JS的三种写法 1)把js写在html文件中 学习时通常就写在script标签中(内部写法) <script> var a = 110; console.log(a) </script> 2)把JS写在JS文件中,然后在html文件中通过script标签引入 写项目时通常会把JS写在一个单独的文件中(外部写法) <script src="./out.js"></script>--> 3)把JS代码写在开始标签中,当成开始标签的属性(行内写法) <button onclick=

使用Python实现RPC框架

风流意气都作罢 提交于 2020-10-18 07:56:41
前言 本文将会使用Python实现一个最简单的RPC框架,玩具向,不具有实用意义,但可以让你清醒的理解RPC框架的几个组成部分,只是比看Python自带的xmlrpc清晰。 本文需要一点Python socket基础。 如果你对Python Socket基础方面的内容不是很熟悉,推荐阅读Real Python的「Socket Programming in Python (Guide)」 吐槽一下VSCode,在开发一些比较复杂的Python项目时,VSCode的debug功能让人感到蛋疼,询问了Windows下使用VSCode的同事,都没有这样的问题,不清楚VSCode对Mac的支持是否存在问题,还只是我单纯的不会用:( 本文代码比较简单,所以还是使用VSCode进行开发。那我们开始吧! 回顾RPC 客户端(Client):服务调用方。 客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发送给服务端。 服务端存根(Server Stub):接收客户端发送过来的请求消息并进行解包,然后再调用本地服务进行处理。 服务端(Server):服务的真正提供者。 Network Service:底层传输,可以是 TCP 或 HTTP。 实现jsonrpc 在实现前,简单理一下整体思路。 1.Network Service

Go语言初探gRPC服务

混江龙づ霸主 提交于 2020-10-18 06:33:39
原文链接: https://www.jianshu.com/p/20ed82218163 环境:2018-05-12 protoc 3.5.1 go1.10.1 windows gRPC: Google主导开发的RPC框架,这里不再赘述。 准备工作 先安装Protobuf 编译器 protoc,下载地址: https://github.com/google/protobuf/releases 我的是windows,将压缩包bin目录下的exe放到环境PATH目录中即可。 然后获取插件支持库 // gRPC运行时接口编解码支持库 go get -u github.com/golang/protobuf/proto // 从 Proto文件(gRPC接口描述文件) 生成 go文件 的编译器插件 go get -u github.com/golang/protobuf/protoc-gen-go 获取go的gRPC包(网络问题可参阅 https://www.jianshu.com/p/6392cb9dc38f ) go get google.golang.org/grpc 接口文件 /src/ 新建 test.proto 示例: syntax = "proto3"; // 定义包名 package test; // 可以定义多个服务,每个服务内可以定义多个接口 service

go内建方法 make方法

孤街浪徒 提交于 2020-10-18 04:28:22
package main import " fmt " func main() { // make函数 makeSlice() // 创建切片 makeMap() // 创建集合 makeChan() // 创建channel } func makeSlice(){ sl : = make([] string , 3 ) sl[ 0 ] = " a " ; sl[ 1 ] = " b " ; sl[ 2 ] = " c " ; fmt.Println(sl) } func makeMap(){ mp : = make(map[ int ] string ) mp[ 0 ] = " hello " mp[ 1 ] = " world " mp[ 33 ] = " ! " fmt.Println(mp) } func makeChan() { mchan : = make(chan string ) go func() { mchan <- " hello world " }() message : = <- mchan fmt.Println(message) } GOROOT=/usr/local/go #gosetup GOPATH=/www/gopath #gosetup /usr/local/go/bin/go build -i -o /private/var/folders

golang基础小记(23)——并发之channel

丶灬走出姿态 提交于 2020-10-18 03:21:20
channel(通道) goroutine 和 channel 是 Go 语言秉承的 CSP(Communicating Sequential Process) 并发模式的重要实现基础。该并发模式提倡 通过通信共享内存 而不是 通过共享内存实现通信 。 channel 可以实现在多个 goroutine 之间进行通信,它是一种特殊的类型,遵循先入先出规则。每一个 channel 只能传递指定元素类型的数据。 声明channel channel 是引用类型,声明 channel 的格式如下: var 变量名 chan 元素类型 示例: var ch chan bool // 声明一个传递布尔值的通道 声明得到的通道的值是 nil 。 创建channel 通道使用 make 函数初始化,其格式如下: make ( chan 元素类型 , [ 缓冲大小 ] ) 示例: ch1 := make ( chan int ) // 未设置缓冲大小,默认是0,所以ch1是无缓冲通道 channel操作 使用之前创建的 ch1 。 发送: ch1 <- 10 ,把10发送到ch1中; 接收: <-ch1 ,值可以用变量接收; 关闭: close(ch) ,只有在所有数据都发送完毕的时候才需要关闭通道,但关闭通道不是必须的,其可以被垃圾回收机制回收。 已关闭通道的特点 发送值会引发 panic ;

聊聊dubbo-go的roundRobinLoadBalance

会有一股神秘感。 提交于 2020-10-17 08:46:46
序 本文主要研究一下dubbo-go的roundRobinLoadBalance roundRobinLoadBalance dubbo-go-v1.4.2/cluster/loadbalance/round_robin.go const ( // RoundRobin ... RoundRobin = "roundrobin" // COMPLETE ... COMPLETE = 0 // UPDATING ... UPDATING = 1 ) var ( methodWeightMap sync.Map // [string]invokers state = int32(COMPLETE) // update lock acquired ? recyclePeriod = 60 * time.Second.Nanoseconds() ) func init() { extension.SetLoadbalance(RoundRobin, NewRoundRobinLoadBalance) } type roundRobinLoadBalance struct{} // NewRoundRobinLoadBalance ... func NewRoundRobinLoadBalance() cluster.LoadBalance { return

在Mac上恢复已删除或未保存的Word文档

两盒软妹~` 提交于 2020-10-17 02:50:09
在平时的工作生活中,word文档是我们经常用到的工具。但是总会有一些我们不能预料的意外,Word文件可能会丢失或从Mac中意外删除。Word崩溃后丢失文件?Word文档刚刚消失了吗?无论遇到哪种情况,都可以通过以下方法恢复已删除的Word文档! 方法1:使用自动恢复功能在Mac上恢复未保存的Word文档 Microsoft Word for Mac包括一个自动恢复选项,可以帮助您恢复未保存的Word文件。默认情况下它将自动打开,并每10分钟保存一次打开的Word文件。如果在处理文档时计算机死机或计算机崩溃,此功能特别有用。 请按照以下步骤从自动恢复文件夹中恢复未保存或丢失的Word文档: 步骤1:打开Finder,然后单击顶部菜单栏上的Go。 步骤2:选择转到文件夹。 步骤3:输入“~/ Library / Containers / com.microsoft.Word / Data / Library / Preferences / AutoRecovery”,然后单击“执行”按钮。 步骤4:您将被定向到AutoRecovery文件夹,所有自动保存的文档将在窗口中列出,前缀为“ AutoRecovery save of”。 步骤5:选择要恢复的Word文档,然后右键单击以使用 Microsoft Word 打开。 步骤6:单击File(文件),然后根据需要选择Save As

源码探索—【go 线程池】ants笔记 1 (真正的小白学源码)

|▌冷眼眸甩不掉的悲伤 提交于 2020-10-17 02:42:13
文章目录 项目选择 初期的迷惑 迷惑点1:代码文件的逻辑? 迷惑点2:是什么促使了这个项目的诞生 迷惑点3:为什么选择了go语言? 进行中的学习历程 笔者认为的源码学习 接下来的更新计划 本文提到的学习资源 首次编辑时间:2020年5月23日 项目选择 关于开源项目或者源码学习,对于我们从事IT行业的同道人或者程序员们都是难以避开的一个话题。这里就来记录一下笔者对于开源项目学习的心得以及体会,此过程中由于没有前导师傅且是一个人的学习,所以思考以及叙述过程有所偏颇,还请观者见谅,还希望能够通过留言或者私信等方式不吝赐教~~ 笔者属于不聪明但是愿意花时间的“耕牛型”学习者,有时候习惯思考问题找到一个解决办法就好,先用着;对于“源码学习”这个话题,在网上(百度,知乎,以及一些更知名的程序员交流网站均有查阅)并没有找到笔者想要了解的知识,无奈只能硬着头皮上了,摸着石头过河呗,还能咋办嘛 =_= 笔者先记录一下第一个开源项目的确定过程,众所周知,GitHub是一个很大的开源仓储库,其作用也远远不止存放代码,且借着现下多媒体信息盛行的大好时光,开始筛选信息: 在手机公众号端关注了主要发布GitHub信息的公众号“GitHub精选”。在经过推荐并根据自身情况筛选后确定了目前正在学习的开源项目 ants ; 将源码下载到本地,IDE选择了 GoLand ( VSCode 也很强大

kotlin 1千万回文

我是研究僧i 提交于 2020-10-16 12:41:48
C,D,Go,Rust,Nim,Zig,V,Julia,Py,C#,Kotlin 11语回文数大战!仅供娱乐参考! https://my.oschina.net/raddleoj/blog/510932 Kotlin 20202820 // huiwen.kt import kotlin.system.* fun main(args: Array<String>) { run() println("Hello, World!") } fun ishuiwen(n: Int) : Boolean{ var sn: Int = n; var tn: Int = 0; while (sn != 0) { tn = tn * 10 + sn % 10; sn /= 10; } if (tn == n) { return true; } return false; } fun huiwen(max: Int = 10000000) : Int{ var tx: Int = 0; for (x: Int in 0..max) { if (ishuiwen(x)) tx ++; } return tx; } fun run(){ var total: Int = 0 val t1 = getTimeMillis() val total: Int = huiwen(10000000); val