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

golang 基础(5)函数的返回值

square-gopher.png 在 go 语言中函数支持多个返回值 func div(a, b int) (int, int){ return a /b , a %b } 我们也可以给函数返回值打上标签 q, r func div(a, b int) (q,r int){ return a /b , a %b } 我们可以用两个变量来接受函数返回值 a, b := div(17,3) 如果我们只想使用一个返回值,也就是 a 而不使用 b,向下面这样做会在编译时报错,go 语言是比较严格语言 strict-inspection.jpg a, b := div(17,3) fmt.Println(a) 应该修改为,通过 _ 占位符来忽略掉不使用的变量 a, _ := div(17,3) fm...阅读全文

Golang指针与nil浅析

曾经听说过一句话,编程的本质就是指针和递归。那会刚开始编码,只是这两个的概念有个感性粗浅的认识。最早接触指针,莫过于C语言了,能否理解用好指针也成为一个合格C语言的基本标志。 Golang也提供了指针,但是go不能进行指针运算,因此相对于C也少了很多复杂度。私以为,go之所以提供指针,并不是为了让你更多和内存打交道,而是提供操作数据的基本桥梁。因为go很多调用,往往复制一份对象,例如函数的参数,如果没有指针,有些情况不得不存在很多副本。 内存和变量 编程语言中一般都会有变量。变量存储一些值。通常我们会对变量声明,赋值,和销毁等操作。 想象一下,内存好比一个长长的桌子,桌子有很多连续的抽屉(内存块)。我们可以按照顺序给每一个抽屉从0开始编号(内存地址),这个编号就是抽屉的地址。当我们需要使用抽...阅读全文

博文 2017-07-22 10:06:37 人世间

Golang:Golang生成动态库及调用

版权声明:博客地址:blog.csdn.net/x356982611,未经允许不得转载,不得转载,不得转载 https://blog.csdn.net/x356982611/article/details/80701253 简介 目前go动态库的生产只支持Linux,Windows下会报这样的错误,`-buildmode=plugin not supported on windows/amd64` CODE plugin.so package main import ( "fmt" ) func DCall(){ fmt.Println("plugin.so was called") } func DCallWithParam(msg string){ fmt.Println("参数内容为:...阅读全文

博文 2018-12-24 18:31:34 x356982611

go语言实现的http和https抓包工具

[gomitmproxy](https://github.com/sheepbao/gomitmproxy)是想用golang语言实现的[mitmproxy](https://mitmproxy.org/),主要实现http代理,目前实现了http代理和https抓包功能,差距甚远,加油。 ## 可以用来干嘛? * http代理 * http和https抓包 * 科学上网 ## 安装使用 ```bash git clone https://github.com/sheepbao/gomitmproxy.git cd gomitmproxy go build ``` ## 例子 * http代理 ```bas...阅读全文

服务计算 - 1 VirtualBox配置私有云

VirtualBox配置私有云 初始准备 AMD处理器电脑需要开启AMD-V Intel处理器电脑需要开启Intel-VT 下载VirtualBox并安装 下载CentOs7(可以选择普通版也可以选择最小ISO) 创建Linux虚拟机 配置内网互联用的网卡 新建网卡: VirtualBox菜单 :管理 -> 主机网络管理器,创建一块虚拟网卡 配置参数: 网址分配:192.168.100.1/24,在主机 windows 命令行窗口输入 ipconfig 就可以看到 VirtualBox Host-Only Network #?: 的网卡 安装CentOs 新建系统: 分配资源:分配内存和处理器,建议分配1/3左右的资源给虚拟机,虚拟机硬盘最好大于30GB。 第一块网卡必须是 NAT;第二块网...阅读全文

Google IP 最新地址

文地址:https://ideas.spkcn.com/technology/250.html 2015年 目前最新可以直接访问google的IP91.213.30.152173.194.77.142173.194.77.143173.194.77.152173.194.77.154173.194.77.163 查询google ip 地址范围nslookup -q=TXT _netblocks.google.com 114.114.114.114nslookup -q=TXT _netblocks2.google.com 114.114.114.114nslookup -q=TXT _netblocks3.google.com 114.114.114.114 IPV4:216.239.32...阅读全文

博文 2015-01-22 13:00:02 apexchu

基于Golang的IP地址信息查询服务

文链接:http://tabalt.net/blog/ipquer... 工作中经常会有通过IP匹配用户信息的需求,如确定用户所在的地区(国家/省份/城市)、运营商、时区、经纬度等等。前一阵有个Golang开发的项目也有这样的需求,于是简单实现了一个包,最近忙里偷闲又包了一个支持HTTP和GRPC方式调用的服务,并开源在GitHub上了。本文主要介绍IP地址信息查询的实现细节和使用方式。 首先交代一下GitHub地址: IpQuery Golang Package:https://github.com/tabalt/ipquery IP地址信息查询服务:https://github.com/tabalt/ipqueryd 欢迎大家在项目中使用(已通过N亿日PV服务的考验),有任何问题或建议,...阅读全文

博文 2017-02-10 02:39:36 tabalt

史上最简单的部署HTTPS&QUIC教程

# 前言 - emmm~,今天是9102年儿童节,都9102年了,你的网站还是万年HTTP吗,Chrome已经看你不爽很久了,得益于Let's Encrypt,现在申请TLS证书变得异常简单。 ![mark](https://cdn.sguan.top/markdown/20190601/4FHJ3R47NG9d.png?imageslim) - 本文将分享我是如何开启整站HTTPS和QUIC,网上关于QUIC的介绍文章挺多的,既然你在看这篇文章,相信是对QUIC有一定了解的,本文不在做重复介绍相关概念。 - 网上的很多文章教程略微复杂,本文将带领你从0开始部署,大学生都学得会。 - 本文使用的浏览器是Chrome73,协议是QUIC43。最终效果如下。 ![mark](https://cd...阅读全文

博文 2019-06-01 14:15:36 imqksl

零基础学习php——入门篇

在Web开发的世界里除了PHP之外还有很多编程语言可供挑选,主流的有Node.js、Python、Java,.NET、Golang,Ruby。其中使用最多的是PHP,特别是在中小企业、互联网创业公司。 在说编程语言之前,我们先了解一下网站是如何在浏览器打开的: 359b033b5bb5c9ea6434d6a7d339b6003bf3b3ab.png 1. 输入地址 向浏览器输入一个网址 2. DNS解析 请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。 如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请...阅读全文

博文 2019-08-20 16:02:48 胡木木OvO

Go语言中的指针和new(T)函数的使用

Go中指针的特点:1)指针是一个代表着某个内存地址的值。2)这个内存地址往往是在内存中存储的另一个变量的值的起始位置。3)Go语言对指针的支持介于Java语言和C/C++语言之间,它既没有想Java语言那样取消了代码对指针的直接操作的能力,也避免了C/C++语言中由于对指针的滥用而造成的安全和可靠性问题。Go中指针的基本操作: Go语言虽然保留了指针,但与其它编程语言不同的是:l 默认值 nil,没有 NULL 常量l 操作符 "&" 取变量地址, "*" 通过指针访问目标对象l 不支持指针运算,不支持 "->" 运算符,直接⽤ "." 访问目标成员new函数表达式new(T)将创建一个T类型的匿名变量,所做的是为T类型的新值分配并清零一块内存空间,然后将这块内存空间的地址作为结果返回,而这...阅读全文

博文 2018-10-04 15:35:10 ck_god

Linux下使用goagent

Linux下使用goagent 分类: linux 2013-04-18 11:16 21614人阅读 评论(4) 收藏 举报 说到穿越长城的软件有很多,不过最近最有名而且免费的就非goagent莫属了,goagent是利用谷歌的GAE服务来翻越长城的,具有速度快,稳定的特点,正好今天我的ssh代理过期,于是准备以后使用goagent来FQ。 1:申请appengine.google.com的个人apppid 首先登录appengine.google.com,申请个人apppid,它将在Goagent中用到。appid只要唯一就可以,必须是英文字符和数字。 二、安装和本地部署 安装goagent服务端 既然已经成功的申请到了apppid,那么接下来的工作就是安装goagent的服务端了。 1...阅读全文

go语言将表数据动态转成切片(字段任意拓展)

package main import ( "log" "fmt" "database/sql" _ "github.com/go-sql-driver/mysql" ) //先把字段的值都当成字符串 func Rows2SliceMap(rows *sql.Rows) (list []map[string]string) { //字段名称 columns, _ := rows.Columns() //多少个字段 length := len(columns) //每一行字段的值 values := make([]sql.RawBytes, length) //保存的是values的内存地址 pointer := make([]interface{}, length) // for i := ...阅读全文

博文 2018-11-25 12:34:39 xxfaxy

创业机会寻找技术好的Go开发

1、具备Linux平台下的编程和操作经验 2、有Golang开发经验一年以上(有C/C++经验更好),习惯通过单元测试、自动化以及代码审查等提升优化代码质量 3、有一定规模和性能互联网系统相关的设计和开发经验者优先 4、熟练掌握常用存储的使用,如mysql, redis 5、具备扎实的OOP及相关软件开发技能,能根据架构要求,开发设计可扩展、可复用、高性能的功能模块; 公司名称:北京认真创造科技有限公司 公司地址:北京市朝阳区三里屯soho D座28层 有意者可投递简历至:huwenwen@51renzhen.cn 公司齐聚了80/90后,有非常轻松的工作氛围,自由弹性的时间,有想法就可以随时沟通的老板。我们为了一个目标在努力,创业有创业的干劲。也为...阅读全文

配置go服务器

对于服务端来说,配置服务器,将项目部署到服务端是比较麻烦的事情。这里由于使用的是国外的云服务器的原因,所以并不是像一般的配置服务器那么顺利,甚至差别还是比较大的。这里使用的是CentOS7.2版本的VPS。 在pycharm中,通过Tools->deployment->configuration添加部署的服务器时,如果单单使用刚刚从云服务端配置好的VPS的ip地址是根本行不通的,这一点,从使用putty登录到VPS中就可以明白,出于安全考虑,不可能随便访问VPS。所以,需要配置服务端。 在CentOS中,本身已经安装了python了,可以通过putty连接,然后通过python -V查看版本(注意,这里的是大写的V),所以可以使用pip安装python的相关软件包,但是安装CentOS的软件...阅读全文

博文 2016-08-15 16:00:04 hangeqq685042

高速通道-冗余物理专线接入-健康检查配置

摘要: 组建混合云,用户的IDC需要通过物理专线与阿里云VPC互通,多线冗余是基本配置需求。阿里云提供的冗余冗余切换方案是在VPC中,用户掌握切换原理,即可自主在控制台完成冗余负载配置。 一 VPC健康检查IP机制1 健康检查IP实现链路冗余的原理是什么?配置健康检测IP后,在的VPC内会保留两个ip地址,作为健康检查的源ip地址。 **点此查看原文:http://click.aliyun.com/m/41951/** 组建混合云,用户的IDC需要通过物理专线与阿里云VPC互通,多线冗余是基本配置需求。阿里云提供的冗余切换方案是在VPC中,用户掌握切换原理,即可自主在控制台完成冗余负载配置。 **一 VPC健康检查IP机制** ![图片描述](http://img.b...阅读全文

为golang做的几张桌面

百度网盘下载地址 http://pan.baidu.com/s/1kU0KjXX ![golang骑马3.png](http://studygolang.qiniudn.com/160222/4f59427d3e6fcc631604c75599312bf5.png) ![golang骑马4.png](http://studygolang.qiniudn.com/160222/bb66d746bd0ebd2571869ca7cf42ba65.png) ![golang骑马6.png](http://studygolang.qiniudn.com/160222/8ff98e8034d915688c13ff312762538d.png) ![golang骑马7.png](...阅读全文

GoLang 实现一个最简单的http文件服务器

How to use github 地址:https://github.com/PolluxLee/GoServer 关闭防火墙 运行 GoServer.exe,不要关闭命令行窗口 将本地文件放到 go 文件根目录的 file 文件夹中即可实现内网共享文件 浏览器访问 http://localhost:8080/pollux/,将localhost替换成本地IP地址 GoServer.go package main import ( "log" "net/http" "os" ) func main() { os.Mkdir("file", 0777) http.Handle("/pollux/", http.StripPrefix("/pollux/", http.FileServer(h...阅读全文

博文 2017-09-04 04:34:51 PolluxLee

Go 语言编程

【课程名称】Go 语言编程 【课程时间】2014年7月30日(周三) 20:50 - 22:00 【课程安排】20:50—21:00 通过邮件地址登录网络课堂 21:00—22:00 主题演讲(徐立)与QA PS:课程咨询请加入QQ群:CSDN技术交流 群号是303806405 课程名称:Go 语言编程 课程大纲: - 为什么我们需要一门新语言 - Go 语言的前世今生 - Hello world - Go 特性介绍 - Go 基本数据类型 - 控制语句 - 函数 - 闭包 - 错误处理 - 结构体 - 面向对象 - 接口 - Goroutines - Channels - Select - Timeouts - Non-Blocking Channel - Mutexes - 文件操作 -...阅读全文

golang 基础(10)函数返回值

square-gopher.png 返回值 在 go 语言中函数支持多个返回值 func div(a, b int) (int, int){ return a /b , a %b } 我们也可以给函数返回值打上标签 q, r func div(a, b int) (q,r int){ return a /b , a %b } 我们可以用两个变量来接受函数返回值 a, b := div(17,3) 如果我们只想使用一个返回值,也就是 a 而不使用 b,向下面这样做会在编译时报错,go 语言是比较严格语言 a, b := div(17,3) fmt.Println(a) 应该修改为,通过 _ 占位符来忽略掉不使用的变量 a, _ := div(17,3) fmt.Println(a) 到现在为止...阅读全文

golang 表达式

表达式 1. 关键字 2. 运算符 3. 初始化关键字 关键字是指被编程语言保留而不让编程人员作为标志符使用的字符序列。因此,关键字也称为保留字, 每种编程语言都有自己的关键字,从使用的角度看,我们可以把Go语言的25个关键字分为如下三类:1. 用于程序声明 2. 用于程序实体声明和定义 3. 用于程序流程控制的关键字类别关键字程序声明import, package实体声明和定义var,const,type,struct,func,interface,map,chan流程控制if,else,switch,case,fallthrough,default,for,range,continue,break,go,select,defer,goto,return运算符 运算符就是用于执行特定计算或...阅读全文

图解Go的unsafe.Pointer

相信看过Go源码的同学已经对unsafe.Pointer非常的眼熟,因为这个类型可以说在源码中是随处可见:map、channel、interface、slice...但凡你能想到的内容,基本都会有unsafe.Pointer的影子。 看字面意思,unsafe.Pointer是“不安全的指针”,指针就指针吧,还安不安全的是个什么鬼? 接下来,我们就来了解一下Go的这个“不安全的指针”unsafe.Pointer。 什么叫变量 在了解指针之前,我们有必要先了解一下什么叫“变量”。 其实变量就是一个内存地址的名字,这听起来可能有些奇怪:指针不是地址码? 听我细细来讲:此地址非彼地址。通常,我们要在计算机内存中存数据,我们会怎么做? 我们肯定说:“计算机,在0x0201地址内存一个数100”。就这一...阅读全文

博文 2020-03-16 11:34:54 RyuGou

阿里云PCDN新亮点 自动调用HTTPDNS 解决域名劫持困扰

摘要: PCDN SDK方案不仅能够帮助客户提升网络分发体验、降低分发成本,还可以无需客户增加任何改造,即可实现域名防劫持和精准调度的能力。 什么是域名劫持? 要想了解域名劫持,先了解域名解析服务器(DNS),它是Internet上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。而通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。 域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器,或伪造域名解析服务器的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。 为什么要防劫持? 域名劫持会对业务产生负面影响, 如访问出现失败、不稳定、错误、跳转至第三方内容等情况,进而造...阅读全文

go语言之各种加密算法的使用

go语言之各种加密算法的使用 加密算法常用于数据传输中的封装,下面看看如何使用go语言库封装好的加密算法。 直接看代码。 package main import ( "encoding/base64" "crypto/md5" "encoding/hex" "fmt" ) const base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" var coder = base64.NewEncoding(base64Table) func base64Encode(encode_byte []byte) []byte { return []byte(coder.EncodeToString(...阅读全文

博文 2015-06-17 23:00:33 bojie5744

用Go开发可以内网活跃主机嗅探器

文章关键词 go/golang gopacket 抓包 pcap/libpcap arp nbns mdns manuf 程序截图 效果图 说明 本文对于Go语言本身的讲解不会太多,想把更多的时间花在几个网络协议的讲解上,希望本文对打算或正在用Go进行TCP/IP编程和抓包的朋友带来帮助。 github地址:https://github.com/timest/goscan 程序思路 通过内网IP和子网掩码计算出内网IP范围 向内网广播ARP Request 监听并抓取ARP Response包,记录IP和Mac地址 发活跃IP发送MDNS和NBNS包,并监听和解析Hostname 根据Mac地址计算出厂家信息 通过内网IP和子网掩码计算出内网IP范围 如果仅仅只是知道一个IP地址,是无法得知...阅读全文

博文 2017-10-29 04:04:41 看山羊

Go语言学习笔记(四) [array、slice、map]

日期:2014年7月22日 一、array[数组] 1、定义:array 由 [n] 定义,n 标示 array 的长度,而 标示希望存储的内容的类型。 例如: var arr[10] int arr[0] = 1 arr[1] = 2 数组值类型的:将一个数组赋值给 另一个数组,会复制所有的元素。另外,当向函数内传递一个数组的时候,它将获得一个数组的副本,而不是数组的指针。 2、数组的复合声明。a :=[3]int{1,2,3}或简写为a:=[...]int{1,2,3}(Go会自动统计元素个数) 3、多维数组 例如:a := [2][2]int{ [2]int{1,2}, [2]int{3,4} } 等价于a := [2][2]int{ [...]int{1,2...阅读全文

博文 2014-10-22 18:27:38 whxaing2011

如何用Docker安装Eclipse Che和Codenvy

现在是时候使用Docker安装一个多节点Codenvy On-Prem和Eclipse Che了。 Docker容器包装一块软件到一个文件系统,这里面包含一切它运行的要素:code, runtime, system tools, 以及libraries。不管运行环境如何,容器总是保证相同的运行。容器将打包和部署转化为独立单元,使软件开发团队更容易提高DevOps效率。 Codenvy一直使用容器支持builds, runners以及 workspaces好几年了。我们现在支持在容器内运行Codenvy。 ## Eclipse Che Eclipse Che是一个现代的、开放源代码的软件开发环境。它是一个通过提供结构化的工作区、项目输入、模块化扩展插件来支持Codenv...阅读全文

Golang 数组与分片

与数组的区别 数组是固定长度的,而分片确实可动态增长的,以定义为例: // 定义数组, 一定要指定长度 var names [5]string // 定义分片, 不需要指定长度 var names []string 在函数调用时, 数组是值传递,而分片是引用传递 其实对于 golang 来讲,函数调用的时候都是值传递,拷贝一个副本, 之所以表现为值传递和引用传递,在于一个拷贝的是数据值,另一个拷贝的是数据指针,两个指针值指向的是同一个内存地址。 分片的实现 分片的底层数据还是使用的数组,它一共包含 3 个字段: 地址指针 长度 容量 // source 是一个分片, 大小为 4, 容量为: 5 source := make([]string, 4, 5) fmt.Println(source...阅读全文

博文 2017-09-07 13:34:47 痕无落

Golang首字母大小写的意义

博客地址:https://www.jianshu.com/p/d3c33e243a71一、含义简介1.1、首字母大写 == public1.2、首字母小写 == private注意:这个 public 和 private 是相对于 go 文件首行 package 声明的包名来说二、package 声明的包名与该文件所处于实际文件系统中目录的关系2.1、一般情况下建议这个包名和所在的目录名保持一致,这样容易辨认。但不一致也是可以的,比如我在 src/aa/bb 目录下新建了 fab.go 文件,我在 fab.go 开头,声明包名 package pab,声明与实际目录不一致。 package pab type ( EventObserver struct { // 大写外包可访问 id int...阅读全文

博文 2019-10-26 19:32:44 aside section._1OhGeD

golang使用原始套接字构造UDP包

RAW SOCKET 介绍 TCP/IP协议中,最常见的就是原始(SOCKET_RAW)、tcp(SOCKET_STREAM)、udp(SOCKET_DGRA)三种套接字。原始套接字能够对底层传输进行控制,允许自行组装数据包,比如修改本地IP,发送Ping包,进行网络监听。这里不做详细介绍,要了解更多可以网上自己查询。 实现 这里先看IP头结构: 其中16位总长度包括IP头长度和数据的长度,8位协议填写17,因为UDP协议类型为17。这里要说明一下IP头中的首部校验,这个值只校验IP头部,不包含数据。这里给出校验算法,IP头和UDP头中使用的校验算法是一样的。 func checkSum(msg []byte) uint16 { sum := 0 for n := 1; n < len(ms...阅读全文

博文 2017-05-01 13:00:34 pinecone

关于golang在树莓派下获取ip和mac地址

前言 最近工作需要,需求为获取树莓派以太网ip地址和mac地址,看了下golang的文档,发现net.InterfaceByName可以完成这个目标。 实现 //以太网网卡名称为eth0 inter, err := net.InterfaceByName("eth0") if err != nil { log.Fatalln(err) } //mac地址 fmt.Println(inter.HardwareAddr.String()) addrs, err := inter.Addrs() if err != nil { log.Fatalln(err) } //ip地址一个ip4一个ip6 for _, addr := range addrs { fmt.Println(addr.Stri...阅读全文

博文 2017-04-28 03:00:36 pinecone

本站全面启用 HTTPS

HTTPS 已经成为了标配,Apple 公司在 iOS 推行 HTTPS,Google 在最新版本的 Chrome 浏览器中,对于有表单的页面,如果是 HTTP,会在地址栏直接显示“不安全”字样,安全性受到越来越多的重视。 为了顺应潮流,即日起,本站启用 HTTPS,目前 HTTP 方式还可以访问,一段时间后,会做自动重定向。欢迎大家使用 HTTPS 访问本站! 注:一些主题中,图片可能是 http 的,这样的页面,暂时不做处理...阅读全文

怎么修改自己网络的IP地址

在如今互联网时代,如果不懂点网络知识,那肯定out,不然你什么都不知道,现在什么都是用网络科技信息化等等一些高科技东西,例如现在出门都不带现金了,吃饭买东西娱乐等等都可以一个手机就可以解决,是的你没有听说,网络时代就是这么便捷和方便。这个事情已经持续已经好几年了,已不新鲜了,那么既然这么多人使用互联网,网络源自于WIFI,这么说就简单了,我们要想看新闻,聊天看电影电视剧,玩游戏是不是都需要连接WIFI,连接网络后就会有一个属于自己的IP地址,这样网络才有路径,知道去哪里来哪里,那么我们今天说的,怎么修改自己网络的IP地址呢。修改IP最简单快速的方法就是使用一个软件,这个软件就是迅速软件,那么这个软件去哪里下载呢,经过小编测试后非常实用,网上搜索迅速软件就可以下载的,首先下载后注册登录,软件里...阅读全文

golang web 从网页地址栏获得参数,然后输出

地址栏输入http://localhost:8880/user?Id=1&name=guo package mainimport ( //"database/sql" //_ "github.com/mattn/go-sqlite3" "fmt" "log" "net/http" //"strconv")func addUser(w http.ResponseWriter, req *http.Request) { userId := req.FormValue("Id") name := req.FormValue("name") out := userId + "-" + name log.Println(out) fmt.Fprintf(w, out)}func sayHello(w ...阅读全文

博文 2015-08-09 11:00:02 石头军

ipfs私有网络搭建

ipfs私有网络搭建准备工作:1、至少准备2个ipfs的节点2、创建一个共享秘钥3、配置需要相互共享的节点。一、准备IPFS节点。1、准备两台linux节点,我测试的系统是Ubuntu 18.04 LTS(点击可以下载)。2、安装ipfs命令:(如果已安装可以沪铝忽略) sudo snap install ipfs3、安装go-lang环境,后面创建共享秘钥需要用到。(如果已安装请忽略) sudo apt-get install golang4、安装git。(如果已经安装请忽略) sudo apt-get install git两台linux服务器均完成ipfs安装之后第一步准备工作便已完成。二、创建共享秘钥1、到github上面下载秘钥生成工具go-ipfs-swarm-key-gen。 ...阅读全文

博文 2018-07-24 18:34:49 embedsky

golang学习笔记-func函数

函数function - Go函数不支持 嵌套、重载和默认参数 - 但支持以下特性: 无需声明原形、不定长变参、多返回值、命令返回值参数、匿名函数、闭包 - 定义函数使用关键字func,且大括号不能另起一行(所有有大括号的均遵循此原则) - 函数也可以作为一种类型的使用,直接赋值给变量(匿名函数) 定义一个函数 格式:func name( 传入的变量1 类型,变量2 类型 ) [ 返回变量 类型,变量 类型 ]{ } - 传入的变量可以没有,也可以使多个 - 当传入的变量类型相同时,可以全部省略只留最后一个 func a(a,b,c int) {} - 返回值可以有多个,返回值类型相同,也可以只留最后一个,其中返回变量名称可以省略,省略的话,就需要每返回一个写一个变量的类型了,如果指定了返回...阅读全文

博文 2017-02-09 18:24:33 beyondlee2011

golang之大端序、小端序

一、概述 字节序:字节在电脑中存放时的序列与输入/输出时的序列;也指的是存放多字节数据的字节(byte)的顺序,典型的情况是整数在内存中的存放方式和网络传输的传输顺序。 先看下基本概念: 1、大端模式(Big endian):将高序字节存储在起始地址(按照从低地址到高地址的顺序存放数据的高位字节到低位字节) 2、小端模式(Little endian):将低序字节存储在起始地址(按照从低地址到高地址的顺序存放据的低位字节到高位字节) 在计算机领域中,大小端序是跟硬件的体系结构有关的。 举个栗子:如一个 var a = 0x11223344,对于这个变量的最高字节为0x11,最低字节为0x44。假设在内存中分配地址如下(地址都是连续的) ... 0x0001 0x0002 0x0003 0x00...阅读全文

博文 2019-01-24 11:34:45 神奇的考拉

golang CIDR 与 IpMask 互转解析

在网络设备上,没家厂商表示ip的形式各不相同,但可能表示的是同一个意思, 列如 10.95.134.192/29 = 10.95.134.192/255.255.255.248 CIDR表示方法:IP地址/网络ID的位数,比如10.95.134.192/29,其中用29位表示网络ID。 CIDR to IpMask _, ipNet, err := net.ParseCIDR("10.95.134.192/29") if err != nil { fmt.Println(err) } val := make([]byte, len(ipNet.Mask)) copy(val, ipNet.Mask) var s []string for _, i := range val[:] { s = ...阅读全文

博文 2018-11-15 01:34:40 包牙齿

Go Web编程:Web基础

在用go开发web程序前,必须了解HTTP协议,对于没有接触过的人来说,强烈建议看下这两本书:《HTTP权威指南》和《图解HTTP》。 HTTP概述 我们平时上网,打开浏览器,输入网址后按下回车键,相应的Web页面就显示出来了。那这个过程到底是如何实现的呢? 先来看下面一张图: 上图很清楚的描述了一个用户访问一个web站点的过程。分为三步: 1. 通过客户端也就是浏览器输入URL网址,客户端通过DNS协议与DNS服务网络交互,获取域名对应的IP地址。 2. 浏览器再通过IP地址找到对应的IP服务器,并建立连接。浏览器发送 HTTP Request 包,服务器处理请求包,并返回 HTTP Response 包 3. 浏览器收到响应包后,绘制页面,等所有内容收到后,断开与该服务器之间的TCP连接...阅读全文

博文 2016-10-09 14:00:05 uudou

Android开发者必知的4个性能优化点

![2839725_610AndroidEvolution_1x.jpg](http://studygolang.qiniudn.com/151215/2dbc934753e3c7e4906b5fd6c41ee511.jpg) 在Android开发中,为避免各种各样的问题,开发人员需要对Android性能进行优化。而说到性能优化,熟悉安卓的童鞋应该都知道,包含很多方面,比如:I/O的优化、网络操作的优化、内存的优化、数据结构的优化等等。这么多优化的点,难免会出现有些被忽视的地方,今天小编和大家分享的就是在网上看到的一篇关于Android性能优化最易忽视的优化点,一起来看看吧。 一、ArrayList和Vector ArrayList和Vector都是内部以数组实现的Li...阅读全文