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

Go语言的程序结构

# Go语言的程序结构 # *** ## 命名规则 **Go 语言的命名规则和C语言的命令没什么不同,都是由数字,下划线,字母组成,且必须以下划线或者字母开头。大小写敏感(var a int 和 var A int是不同变量)** GO语言的关键字主要包括25个:

...阅读全文

博文 2017-08-14 14:06:16 wenxuwan

2018年11月TIOBE编程语言排行榜,Java稳居第一

每月的编程语言一出,我们都会发现,Java总是稳稳的占据榜首,JAVA不可撼动的江湖地位,让我们对于Java的学习更加有信心,对于Java未来的发展充满着无限的期待。 ![image.png](https://static.studygolang.com/181226/a017a046eaf23214f5d4889003bd2971.png) 再过两个月,TIOBE 就将宣布 2018 年的年度编程语言。依照目前的形势来看,Java、C、C+、Python 和 Visual Basic.NET 排名前五。那么,没有意外的话年度编程语言就在这五个之中了。 以上可以看见,C语言的增长幅度最大,涨幅 5.10%。而java的涨幅虽然没有C语言的涨幅大,但涨幅也不小,也有3.51%的涨幅,依旧稳居第...阅读全文

博文 2018-12-26 16:34:34 Javaspring12

01-GoLang开篇

Go的前世今生我就不赘述了,由于Go与C渊源颇深,所以我们对照C学习。 Go语言文件 源代码文件 C语言源代码保存在.c文件中 Go语言源代码保存在.go文件中 代码管理方式 C语言通过文件来管理代码,将不同功能(模块)的代码放到不同的文件中,声明后缀为.h的头文件,通过include导入对应的.h文件使用相应代码 Go语言通过包来管理代码,将不同功能(模块)的代码,放到不同的包中,通过import导入对应的包来使用相应代码 注意点: 1、Go语言规定,包名要和.go文件所在文件夹名称保持一致 2、包名不能重复 3、包名导入但是未在程序中使用会报错(变量定义未使用也会报错,后面细讲) 标准项目格式 上图 1.bin文件夹:用于存放可执行程序的文件夹 2.pkg文件夹:用于存放二进制文件的文件...阅读全文

博文 2018-09-18 11:34:40 箩篼

15个流行编程语言及其应用

之前自己一直在找自己感兴趣的方向,以及在这个方向上流行的语言并尝试学习这些语言其中的几个但是没有什么重大发现,这篇文章主要介绍了15个出现在3个编程语言排行榜的编程语言和他们的擅长的领域,他们分别是(排名不分先后):Python,Java,JavaScript,PHP,C#,C,C++,Ruby,Swift,Go/Golang,Scala,R,Objective-C,Perl。PythonPython is a general purpose programming languagethat can be used on any modern computer operating system.It can be used for processing text, numbers, imag...阅读全文

博文 2018-08-06 15:34:55 000000010010a

Golang对象中的value与pointer

开宗明义 不是我喜欢装,要用什么value与pointer,而不说值与指针。实在是后面还要讲receiver时,实在不知道怎么说,但是value receiver与pointer receiver就好多了。 面向对象 如果一门编程语言哪一天不说面向对象了,那还真的是一件很奇怪的事情。即使是函数式语言,或者是C语言,都会以某种程度来说是怎么样实现面向对象的语义。面向对象,就是程序封装里面一道跨不过去的坎。 Golang中和面向对象形式上特别简单,就是给函数function定义加一个receiver,那么就变成了方法method了。如: type A struct { } func (a A) DoSomething() { /* 你在这里做了些什么事情 */ } a := new A(); a...阅读全文

为什么数组要从零开始?

如题,数组第一个元素为什么要从零开始,而不从一开始?感觉这很反人类呀,正常来讲,一个集合的开始,不应该从一吗? 对于这个问题,我觉得可以从以下两方面来考虑。 设计层面 我们先了解一下数组最基本的结构和寻址方式(即实现方式)。 现在市面上无论是C、Java、PHP,还是Go或者其他编程语言,他们数组的实现方式,应该都是一样的:一段连续的内存。 image 数组在分配内存的时候,我们会知道数组的开始地址(PS:在目前下标为零的情况下,也等同于数组的第一个元素的地址); image 因为数组中每个元素的类型都是相同的,所以每种类型所占的内存大小是固定的,因而导致数组中每个元素的所占的内存大小都是相同的 image 由此我们可以得出,数组中每个元素地址的计算公式: image // n为数组坐标,x...阅读全文

golang初学者: string, [...]TYPE, []TYPE类型浅析 & golang 的内存管理

# go string类型 ## string类型变量 ```c //go语言中的string类型像是c语言中的 struct string{ size_t len ; char const * data ; //指向[...]byte类型的数组 }; ``` ## string = 运算符赋值操作 ```go /* string类型 = 赋值运算符, 推测使用浅copy, string类型不提供修改索引的[...]byte类型数组的方法,并且go语言实现了gc垃圾回收机制,不需要关心内存释放的问题,所以单纯的赋值操作,没有必要进行深copy,使用浅copy可以提高性能,节省内存空间 */ ``` # go [...]TYPE array类型 ## [...]TYPE类型变量 ```c /*...阅读全文

博文 2020-02-03 22:24:00 loop_0

go语言的包管理

包管理的思想 在各种语言中都引入了包管理的思想,它有什么作用呢? 方便代码管理 提高代码的复用 一种命名空间隔离的思想 ... go语言包的组织 go语言包的导入 在go语言安装一文中提到go语言的工作空间的概念 import "fmt" import "github.com/gin-gonic/gin" 以上代码是在代码中导入了两个包,一个内置包,一个第三方包.这里的import后是一个包相对于$GOPATH/src的相对路径,在该目录下就存放着该包的代码文件. 包的组织结构 一个目录下只存在一个包 一个目录下可以由多个文件组成一个包 目录下可以由多个子目录存放新的包 第三方包的安装 go语言中提供了go get进行获取第三方的包,通过该命令将代码存放到$GOPATH/src目录下,在代码...阅读全文

博文 2018-08-12 15:35:02 暮雨

Go语言学习笔记02--go语言运算符与流程控制分支语句

1.并发概念概述 并发指的是同一时间的多次访问。解决并发途径一般就是创建多个服务器去分流访问, 对于服务器而言,响应速度越快那么并发量肯定就越高。 或者是通过语言逻辑来解决分流。go语言对于并发天生支持性就非常好 ps:打开mac系统终端快捷方式 cmd+space ps:查看go安装版本 go version 2.字符和字符串的区别 1)转义字符 go语言中使用\反斜线表示转义字符,\反斜线配合其他的字符进行组合能够在字符串中拥有特殊的含义 例如: \n 换行 \r 回车 \\ 输出单一反斜线 \" 双引号 \0 字符串结束符号 ps:在很多语言中\'转义字符都用来表示单引号,但是在go语言中却并不存在这样的转义字符。 其原因是因为在go语言中''单引号是用来表示字符的,并不能用于创建字符...阅读全文

博文 2018-11-29 19:41:24 FrankAdd

2020 年,你学的编程语言价值多少?

编程语言是人们指导或控制机器的工具,其开发目的在于让操控机器的过程更加简单和顺畅。正因如此,数百种编程语言应运而生。然而,它们的命运却各不相同。一些语言已不复使用,或将在未来几年淘汰。相应地,一些语言将会被充分使用,还有一些崭新的编程语言正在逐渐被人们所接受。本文选取真实可信的调查、统计数据、搜索结果以及薪资等数据,预测 2020 年编程语言的发展趋势。这篇文章将帮助初学者选择适合自己的入门语言,并指导资深人士在切换语言和继续使用当前语言之间作出选择。 我通过两个表格总结了过去五年间编程语言的潮流趋势。相关数据来源于 2015—2019 年 Stack Overflow 的调查结果。为了帮助读者更加准确地理解,我将编程语言分为两组,第一组是 2000 年以前推出的编程语言,第二组是 2000...阅读全文

Go语言基础:if,goto,for,switch

Go的if,for,switch跟C的区别 有过C基础的人,都知道if、for、switch的条件语言都是有括号的。基本格式: if(条件判断语言) {} for(语句1;语句2;语句3) {} switch(语句){} 在go中,这些语法规则跟C还是有差别,概括为一句话就是去掉了括号。语法规则如下: if 语句 {} for 语句1;语句2;语句3 {}//跟C一样,这三个语句可以省掉任何一个语句 switch 语句 {} 区别其实很简单。正由于没有了括号,导致他们与C有了更多的功能。 if if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内,其他地方就不起作用了。 if x:=getXdata(); x>10 { //x的作用域只在这个括号...阅读全文

博文 2016-09-07 01:00:00 uudou

Go语言基础:method

我们在C语言中,struct中声明函数,而Go中则不能再struct中声明函数。而是采用另外一种形态存在,Go中叫method。 method的概念 method是附属在一个给定的类型上,语法和函数的声明语法几乎一样,只是再func后面增加了一个recevier(也就是method所依从的主体) method的语法格式 func (r ReceiverType) funcName(parameters) (results) 形象一点说,就是 ReceiverType 类型的所有字段,方法 funcName 都是可以使用的,可以认为 funcName 属于 ReceiverType。 method简单应用 package main import ( "fmt" "math" ) type Re...阅读全文

博文 2016-09-06 23:00:03 uudou

Go语言基础(一)—— 简介、环境配置、Hello World

前言: 本专题用于记录自己(647)在Go语言方向的学习和积累。 系列内容比较偏基础,推荐给想要入门Go语言开发者们阅读。 目录如下: Go语言基础(一)—— 简介、环境配置、HelloWorld Go语言基础(二)—— 入门常用语法 Go语言基础(三)—— 数据类型 Go语言基础(四)—— 运算符 Go语言基础(五)—— 条件与循环 ... 一、Go的起源 Go,又称Golang。2007年,由Google的工程师们开发。2009年,正式发布。 诞生的原因:目前服务端软件开发的新挑战 多核硬件架构。 超大规模分布式计算集群。 Web模式导致的前所未有的开发规模和更新速度。 二、Go的创始人 Rob Pike:Unix的早期开发者、UTF-8 创始人。 Ken Thompson:Unix的创...阅读全文

博文 2020-01-21 14:32:49 奇舞647

为什么说C语言和linux是分不开的?

​在很多人的眼里,C语言和linux常常是分不开的。这其中的原因很多,其中最重要的一部分是linux本身就是C语言的杰出作品。当然,linux操作系统本身对C语言的支持也是相当到位的。作为一个真正的程序员来说,如果没有在linux下面用C语言编写过完整的程序,那么只能说他对C语言本身的理解还相关肤浅,对系统本身的认识也不够到位。作为程序员来说,linux系统为我们提供了很多理想的环境,这其中包括了下面几个方面,(1)完善的编译环境,包括gcc、as、ld等编译、链接工具(2)强大的调试环境,主要是gdb工具(3)丰富的自动编译工具,主要是make工具(4)多样化的os选择,ubuntu、redflag等等(5)浩瀚的开源代码库当然,不管怎么说,最终朋友们还是应该自己勇敢地跨出前进的第一步。如...阅读全文

博文 2019-01-17 16:40:46 gaohuan123

C++/Golang的数组类型异同

1. 本文章的必要性 C++的存在像一把瑞士军刀,继承了C语言的设计理念——“充分相信程序员”,几乎将所有的底层细节都暴露在外,程序员可以自由控制。在最近详细学习Golang的过程中,发现Golang中的常用结构的设计理念与C++截然不同,为许多常用的操作都提供了语言设计者所认为的“最佳实践”。本文章仅讨论Golang中数组和切片。 2. Golang数组 和 C++数组(Array) 例子 C++ version // const常量长度初始化 // 显然非常量无法作为初始化的长度,因为编译器在编译期无法确定要为此数组分配的内存长度 const int len = 10; int cpp_arr[len]; // 初始化赋值 int cpp_arr[] = {1, 2, 3, 4, 5};...阅读全文

Raspberry Pi with Go lang

// This program achieves LED blink on Raspberry Pi with Go lang. // This is implemented with hard-coding and uses only main function. package main import ( "fmt" "os" "time" ) func main() { // Initialize GPIO25 fmt.Println("Initialize GPIO25") fd, err := os.OpenFile("/sys/class/gpio/export", os.O_WRONLY|os.O_SYNC, 0666) if err != nil { fmt.Println(...阅读全文

博文 2017-02-09 08:11:14 载昊君

Learn Golang In Day 9

Learn Golang In Day 9 简介 结构体是自定义的数据结构 定义结构体 package main import "fmt" type Books struct { title string author string subject string bookid int } func main() { //创建一个结构体 fmt.Println(Books{"Golang","菜鸟教程","Go语言",6453007}) // key => value 方式赋值 fmt.Println(Books{title: "Golang112",author: "",subject: "subject 哈哈", bookid:787823}) // 字段可以省略 fmt.Println(...阅读全文

博文 2019-02-03 22:34:41 笑吧小鸟

重新开始学习golang

初衷使用go作为我的主要编程语言,已经有些时日了。依然觉得自己离大神之路有些距离,所以决定用写博客的方式来重新记录一下自己的学习之路,温故而知新,希望自己能对go和编程的认知更加深刻,同时也希望对看到这些文章的人有所帮助,若有路过的大神能对我的所言不吝赐教,那就再好不过了。怎样才算掌握了一门编程语言我认为这个问题要分阶段来看。初级工程师:能够独立搭建这门语言的所需环境,掌握这门语言的基本语法,能够使用一些常见的包或库;中级工程师:能够独立从无到有搭建一个项目,具有调试和性能调优的经验,对性能方面有追求,了解一些该语言的源码;高级工程师:能够深入理解一门语言的编译原理,能够用该语言自举编译器,对该语言的生态深入了解,知道整个生态的架构应该怎样搭建和维护,知道这门语言的发展方向。计划我希望我能通...阅读全文

博文 2020-01-12 20:33:12 wx5e1abbbb0a5e5

golang 生成 shared object 供其他语言使用

golang 生成 shared object 供其他语言使用 LINUX so 文件基本概念和命名规则 libxmns.so.1.2.3 1 major 2 minor 3 release major 增加,原有函数接口已经不能使用,minor和release 复归于0 minor 增加, 新增加了一些函数接口,但原有函数接口还能使用, release 复归于0 release 增加,修改一些bug, 函数接口不变 c-go 模板-供c、java等编译型语言或脚本语言使用 package main import "C" import "fmt" //export Sum func Sum(a int, b int) int { return a + b } //export GetName...阅读全文

Go语言的垃圾回收算法被吹过头了?与Java相比如何?

Go语言正在构建的垃圾收集器(GC),似乎并不像宣传中那样的,技术上迎来了巨大突破。那么,与Java语言作对比之后,该怎么选择呢? 写在前面 最近,我读到一些大肆宣传Go语言最新垃圾回收器的文章,这些文章对垃圾回收器的描述让我感到有些厌烦。这些文章有些是来自Go项目。他们宣称GC技术正迎来巨大突破。 Go正在构建一个划时代垃圾回收器,2015年,甚至到2025年,或者更久……Go 1.5的GC把我们带入了一个新时代,垃圾回收停顿不再成为使用新语言的障碍。应用程序可以很容易地随着硬件进行伸缩,而且随着硬件越来越强大,GC不再是构建可伸缩软件的阻碍。一个新的时代正在开启。Go团队不仅宣称他们已经解决了GC停顿问题,而且让整件事情变得更加“傻瓜”化: 从更高层面解决性能问题的方式之一是增加GC选项...阅读全文

博文 2019-03-23 13:35:11 java185690

go 学习笔记之值得特别关注的基础语法有哪些

在上篇文章中,我们动手亲自编写了第一个 `Go` 语言版本的 `Hello World`,并且认识了 `Go` 语言中有意思的变量和不安分的常量. 相信通过上篇文章的斐波那契数列,你已经初步掌握了 `Go` 语言的变量和常量与其他主要的编程语言的异同,为了接下来更好的学习和掌握 `Go` 的基础语法,下面先简单回顾一下变量和常量相关知识. ## 有意思的变量和不安分的常量 - 变量默认初始化有零值 ```go func TestVariableZeroValue(t *testing.T) { var a int var s string // 0 t.Log(a, s) // 0 "" t.Logf("%d %q", a, s) } ``` > `int` 类型的变量初始化默认零值是零 `...阅读全文

博文 2019-08-24 17:12:39 snowdreams1006

不同编程语言在发生stackoverflow之前支持的调用栈最大嵌套层数

今天我的一位同事在微信群里发了一张图片,勾起了我的好奇心:不同编程语言支持的函数递归调用的最大嵌套层数是? Java 1.8 private static void recur(int i){ System.out.println("Stack level: " + i); recur(++i); } 测试结果:8644 Javascript in Chrome Chrome版本: Version 70.0.3538.102 (Official Build) (64-bit) function a(i){ console.log("stack level: " + i) a(i+1); } a(0); 测试结果:11412 JavaScript in nodejs nodejs versio...阅读全文

博文 2018-11-15 01:34:39 JerryWangSAP

关于编程语言的一些认知和思考

计算机本质上来讲就是可以运行一系列命令的机器,比如电灯拥有开和关的两个命令,计算机相比电灯要更加复杂一些罢了。 编程语言就是控制计算机的命令,好比电灯开我们就用数字1来表示,关我们就是用数字0来表示。可是对人类的自然语言来说01这样的命令实在太复杂了。如果我想让计算机进行加减乘除的计算可能就需要输入一串根本看不懂的01组合。好在后来发明了汇编语言。 汇编语言 汇编语言让我们可以使用字母符号来给计算机发送指令。比如: 操作:寄存器BX的内容送到AX中 1000100111011000 机器指令 mov ax,bx 汇编指令 汇编是直接面向CPU的程序设计语言,如果我们想要开发更高级的程序使用汇编语言可能就费劲了。这时候静态类型的语言就出现了。 静态语言 我们所谓的静态语言是什么?比如C语言这样...阅读全文

博文 2017-08-15 09:05:04 ppmoon

Golang简介

Go 语言教程 image Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 Go 语言特色 简洁、快速、安全 并行、有趣、开源 内存管理、数组安全、编译迅速 Go 语言用途 Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供...阅读全文

博文 2019-07-20 22:32:40 7x24run

12 个学习新的编程语言的方法

Image by : opensource.com 听说,你决定要为你的 “技能树” 再添加一门特定的编程语言。那该怎么办呢? 在这篇文章中,作者提出了 12 项关于学习技术的建议。记住每个人学习的方式都不一样。其中一些可能对你十分有用,而其他的则可能无法满足你的需求。如果你开始担心一个策略,请尝试另一个策略并看看它哪里适合你。 1. 将其与类似的语言进行比较。当你首次观看有关该语言的第一个教程或阅读代码时,请尝试猜测该语言的每个部分将会做什么,并检查你的判断是否正确。 如果记笔记可以帮助你整合信息,请拿起一张纸并记下三个列表: 看起来很熟悉的东西,并且做了预期中的事 看起来很熟悉的东西,但做了意料之外的事 看起来完全是新的东西 例如,如果我用来自 Python 和 C 背景的 Rust 代...阅读全文

博文 2017-08-18 11:03:46 编辑部的故事

Go语言包管理简史

包管理是Go一直被诟病做得不好的功能之一。先前版本(go 1.11之前)的主要缺点之一是go get是缺乏对依赖包版本的管理和对可复制构建(reproducible build)的支持。Go社区已经开发了一些包管理器和工具作为版本化包依赖的事实标准解决方案,如glide,dep以及一些辅助工具等。 “我在生产构建中使用go get。” – 没有人这么说过。 Go语言的包管理实现可追溯到Google公司内的代码依赖管理(Google将内部所有源代码都存放在一个巨大的单体存储库中)。我们来分析一下在”Go module”之前Go语言的包管理工具都出了什么问题。 依赖包的版本化 依赖包的本地缓存(vendor) GOPATH的必要性 依赖包的版本化 go get默认情况下不支持包版本控制。go软件...阅读全文

博文 2019-09-21 22:14:17 bigwhite

LeetCode 617. Merge Two Binary Trees

题目 Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be use...阅读全文

博文 2017-08-02 04:06:10 miltonsun

GO开发[二]:golang语言基础

[TOC] 一.变量 1.声明变量 变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 Go语言引入了关键字var,而类型信息放在变量名之后,变量声明语句不需要使用分号作为结束符,示例如下: var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { f int } var v6 *int // 指针 var v7 map[string]int // map, key为string类型, value为int类型 var v8 func(a int) int var关键字的另一种用法是可以将若干个需要声明的变量放...阅读全文

博文 2018-01-15 07:30:01 gregoryli

区块链编程指南:常用的五大区块链编程语言

区块链代表着未来的发展方向。当然,确定未来将围绕这一新兴技术构建并不是一个牵强附会的附件。区块链最初是一种开放的技术,没有访问限制,但随后的开发,逐渐出现了新的类型,每个区块链都有自己的一组特定用例。开放/非访问区块链的特征包括开放性,分散性和缓慢性,而私有/可访问区块链采用部分或完全封闭的集中管理方法。通过今天的文章,我们将探索我们需要学习哪些知识来构建基于区块链技术的应用程序。应该使用哪种编程语言进行高效编程? 五大常用区块链编程语言 1. C++下面让我们从清单当中最古老、也最受推崇的语言——编程语言界的常青树C++开始。相信大家都很清楚,C++语言属于C语言的扩展方案。在C++中,我们可以创建数据、函数与对象包,并在其它程序中轻松对其进行调用与复用,这将大大缩短编码的时间周期。然而,...阅读全文

博文 2019-04-01 18:34:40 羽珩发布

go 源码-unsafe包

# go 源码阅读-unsafe包 >unsafe包包含了go编程中绕过类型安全的操作. import unsafe的包大多是非直接可用并且不受go v1兼容性指南约束的 1. ```go type ArbitraryType int ``` 只是为了文档而声明的类型,实际上它并不是unsafe包的一部分,它代表任意go表达式的类型 2. ```go type Pointer *ArbitraryType ``` Pointer代表了任意类型对应的指针,有四种特殊的操作只对Pointer类型生效,对其他类型无效 (1) 任意类型的指针可以转为Pointer (2) Pointer可以转为任意类型 (3)uint类型指针可以转为指针 (4)Pointer可以转为uint类型指针 **因此Poi...阅读全文

博文 2018-10-28 19:18:02 XCapsule

2018-09-19

学习有了明确的方向和目标,走小众化且前沿化的方面,golang和python是不错的选择,只看文档性的说明是不足够的,要熟悉框架性的东西,网络和linux是必须要熟悉的,脚本语言也是要熟悉的。。。。。。1、c++,基础结构以及框架性的东西2、网络TCP/IP协议,http,https3、linux命令,shell脚本4、加分...阅读全文

博文 2018-09-19 12:34:39 熊油萌虎细秀蔷薇

2020 年编程语言盘点展望:Java 老兵不死,Kotlin 蓄势待发

在进入新的十年之际,各行各业都在进行盘点与展望。SegmentFault 作为开发者社区与科技行业的垂直媒体,一直关注行业的发展与相关动态,近期已陆续为大家整理了各大平台、社区针对技术领域作出的预测与盘点。 今天,继续为大家粗译(文末有原文地址,粗译仅供大家前期了解,建议阅读英文原文)O'Reilly 发布的编程语言发展展望 —— 《Where programming languages are headed in 2020》。 该盘点及分析由数位编程专家整理得出,包含了大量他们对于某些经典编程语言以及新兴编程语言的思考以及基于行业的分析。 Python 今年 Python 的最大新闻是,Python 之父吉多·范·罗苏姆(Guido van Rossum)正式退休,并将 Python 交给...阅读全文

博文 2020-02-18 13:32:42 徐九

golang学习笔记1:初识

1、为什么要学习go? 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情况更是不容乐观。由于二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同时编程语言的设计思想也已经非常陈旧,这些情况都充分证明了现有的编程语言已不符合时下的生产环境。尽管硬件在过去的几十年中有了飞速的发展,但人们依旧没有找到机会去改变 C++ 在软件开发的重要地位,并在实际开发过程中忍受着它所带来的令人头疼的一些问题。因此学者们坐下来总结出了现在生产环境与软件开发之间的主要矛盾,并尝试设计一门全新的编程语言来解决这些问题。以下就是他们讨论得出的对编程语言的设计要求...阅读全文

博文 2018-10-11 22:34:39 编程老司机

Tank技术【3-1】Go语言学习资源

一、序言:用GoLang编写服务端程序Go语言属于类C语言,由Google维护,排名火箭上升。GoLang使用方便,并且可以轻松在各个平台(跨平台)编译成可执行文件,有利于知识产权的保护。因此,在往后的服务端程序编写中,决定使用Golang进行编程。二、Go语言开发环境在Windows10的安装Go语言在win10安装很简单:1. https://golang.google.cn/dl/ 下载安装包,windows就选择windows的安装包2. 下载完毕后开始安装,一路next,最后go环境安装到了:\go目录下,环境变量也设置成功了。3. 在任务栏打开cmd窗口, 在窗口中,用cd c:\go 进入go的文件夹。再用 cd test,进入 c:\go\test 文件夹。 这个文件夹里有很...阅读全文

博文 2020-01-05 21:32:42 idontknowctt

TODO:Golang指针使用注意事项

TODO:Golang指针使用注意事项 先来看简单的例子1: 输出: 1 1 例子2: 输出: 1 3 例子1是使用值传递,Add方法不会做任何改变;例子2是使用指针传递,会改变地址,从而改变地址。在看例子3: 输出: map[a:aa b:bb] map[b:world a:hello] 发现什么了,TestMap前面没有加*,没有用指针,怎么也会改变值呢?因为map提供键值功能,用起来像指针引用的类型。类似这种功能的类型还有,数组切片,channel,interface。Go语言包这种指针引用类型,有兴趣可以去阅读一下源码,变量前面都有带“*”号,如果没有看看是否是map类型等。值的拷贝,操作后不会影响到副本的值;而指针则会改变同一地址的所有变量名。例子4: 输出: tempBytes:...阅读全文

Go基础学习二

Go编程语言:支持并发、垃圾回收的编译型系统级编程语言! 一、go语言常用命令 go get 获取远程包(需提前安装git) go run 运行 go build 测试编译(package main 的文件) go fmt 格式化代码 go install 编译包文件和整个程序 go test 运行测试文件(**_test.go是测试文件,命名自己文件的时候需要注意) go doc 查看文档(本地官网 godoc -http=:8080 & 后台执行) 我们可以将go的官网放到本地: godoc -http=:8080 然后我们可以访问本地8080端口: http://localhost:8080/ Go环境变量与工作目录:GOPATH下需要建立 3个目录(bin存放编译后生成的可执行文件;...阅读全文

博文 2017-09-24 03:34:44 Corwien

go 学习笔记之值得特别关注的基础语法有哪些

在上篇文章中,我们动手亲自编写了第一个 Go 语言版本的 Hello World,并且认识了 Go 语言中有意思的变量和不安分的常量. 相信通过上篇文章的斐波那契数列,你已经初步掌握了 Go 语言的变量和常量与其他主要的编程语言的异同,为了接下来更好的学习和掌握 Go 的基础语法,下面先简单回顾一下变量和常量相关知识. 有意思的变量和不安分的常量 变量默认初始化有零值 func TestVariableZeroValue(t *testing.T) { var a int var s string // 0 t.Log(a, s) // 0 "" t.Logf("%d %q", a, s) } 复制代码 int 类型的变量初始化默认零值是零 0,string 类型的变量默认初始化零值是空字符...阅读全文

博文 2019-08-17 16:34:26 雪之梦技术驿站

将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct

https://groups.google.com/forum/#!topic/golang-nuts/JkvR4dQy9t4 https://golang.org/misc/cgo/gmp/gmp.go https://stackoverflow.com/questions/19910647/pass-struct-and-array-of-structs-to-c-function-from-go https://studygolang.com/articles/6367 1、可以为c struct定义结构体函数,如下定义的打印函数,(你可能还可以定义改变结构体内部子field的函数,但我未验证过): working with a lot of typedefs in cgo is a ...阅读全文

博文 2018-06-02 16:30:01 welhzh

Libra介绍

前沿 从技术上来说,Libra属于区块链2.0 的联盟链,在实现上,整体参考了以太坊的设计,当然,自己实现了一套类似于solidity 的智能合约语言,Move;共识上,使用的是BFT 共识算法蔟,称之为LibraBFT。当然,这里是联盟链,因此,自身也实现了一套联盟准入机制。 1、交易模型 transaction { Sender address:交易发起方的账户地址, Sender public key:交易发起方公钥, Program:{ script: Move 交易脚本字节码(Move 类似与以太坊的 solidity,作为libra的只能合约语言), inputs: 所调用合约方法的入参,作为点对点交易,方法入参包括交易接受方address,以及转账额度 }, Gas price...阅读全文

博文 2019-06-20 17:32:53 萝卜头4lbt

golang-crc16( C语言的翻译版)

C语言 ``` static const U16 crctab16[] = { 0X0000, 0X1189, 0X2312, 0X329B, 0X4624, 0X57AD, 0X6536, 0X74BF, 0X8C48, 0X9DC1, 0XAF5A, 0XBED3, 0XCA6C, 0XDBE5, 0XE97E, 0XF8F7, 0X1081, 0X0108, 0X3393, 0X221A, 0X56A5, 0X472C, 0X75B7, 0X643E, 0X9CC9, 0X8D40, 0XBFDB, 0XAE52, 0XDAED, 0XCB64, 0XF9FF, 0XE876, 0X2102, 0X308B, 0X0210, 0X1399, 0X6726, 0X76AF, 0X4434...阅读全文

博文 2019-02-21 18:45:17 xiaohaoxiong

Go语言的垃圾回收算法被吹过头了?与Java相比如何?

Go语言正在构建的垃圾收集器(GC),似乎并不像宣传中那样的,技术上迎来了巨大突破。那么,与Java语言作对比之后,该怎么选择呢?小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!写在前面最近,我读到一些大肆宣传Go语言最新垃圾回收器的文章,这些文章对垃圾回收器的描述让我感到有些厌烦。这些文章有些是来自Go项目。他们宣称GC技术正迎来巨大突破。Go团队在2015年8月发布的新垃圾回收器的启动声明:Go正在构建一个划时代垃圾回收器,2015年,甚至到2025年,或者更久……Go 1.5的GC把我们带入了一个新时代,垃圾回收停顿...阅读全文

博文 2019-01-16 23:34:43 java高级编程中心

美美的小程序开发之路--20190331

类和继承 在面向对象的编程语言中存在“类”的概念,类就表示数据的类型,比如说People类;继承是指某个类是由另一个类派生出来的。生成的新类是子类,被继承的类是父类。 JS中的“var” 在某一类编程语言中会采用动态类型,是指编码时不要求指定变量类型,实际的变量类型由编译器/解释器在加载程序时动态分配。在JavaScript中用var声明变量,用let声明常量。 nil,null和undefined 通常声明变量的步骤为var a_varible = null;这里表示变量a_varible的值初始化时是空的,即null;在某些语言中是nil,比如Objective-C,Golang。有时声明变量也可以写成var a_varible,在JavaScript中,此时的变量值是undefined...阅读全文

博文 2019-04-01 18:34:41 原鸣清

17.Go语言内置包之strconv

1.strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数:Atoi(),Itia(),parse系列,format系列,append系列。 1.1string与int类型转换 1.1.1Atoi() Atoi()函数用于将字符串类型的整数转换为int类型 func Atoi(s string) (i int, err error) 如果传入的字符串参数无法转换为Int类型,就会返回错误。 package main import ( "fmt" "strconv" ) func main() { s1 := "100" i1,err := strconv.Atoi(s1) if err != nil{ fmt.Println("can not conve...阅读全文

博文 2020-02-07 19:33:11 DevOperater

北大青鸟西安建大校区:2020 年,你学的编程语言价值多少?

作者:AJIT KUMAR译者:姜雨生原文出处:WHAT STATS & SURVEYS ARE SAYING ABOUT TOP PROGRAMMING LANGUAGES IN 2020编程语言是人们指导或控制机器的工具,其开发目的在于让操控机器的过程更加简单和顺畅。正因如此,数百种编程语言应运而生。然而,它们的命运却各不相同。一些语言已不复使用,或将在未来几年淘汰。相应地,一些语言将会被充分使用,还有一些崭新的编程语言正在逐渐被人们所接受。本文选取真实可信的调查、统计数据、搜索结果以及薪资等数据,预测 2020 年编程语言的发展趋势。这篇文章将帮助初学者选择适合自己的入门语言,并指导资深人士在切换语言和继续使用当前语言之间作出选择。 我通过两个表格总结了过去五年间编程语言的潮流趋势。相...阅读全文

博文 2019-08-28 11:32:48 西安北大青鸟幸福IT

Go指南-数组与切片

在Golang中,数组与切片是两个概念,数组用的比较少,切片用的比较多,也更为常见,理解了它们之间的关系,能够帮助我们减少一些奇奇怪怪的问题。 一切还要从这张图讲起.. 这张图中说明了数组和切片的核心区别,同时也是本文讲解的重点: 1.数组的声明需要指定长度,而切片可指定也可不指定。 2.切片本质是对数组一个引用,切片改变,数组也会改变。 3.切片包含三个部分:数组引用、长度属性、容量属性。长度属性指的是切片的元素数量,决定了可读取数据的上限;而容量属性指的切片的最大元素数量,决定切片了扩展的上限。 1.数组和切片的声明 // 数组的声明 var arr [3]int arr[0] = 1 // 切片的声明,通过var关键字 var slic []int // 切片的声明,通过make关键字...阅读全文

博文 2020-03-29 15:34:25 言淦

技术栈:golang的技术特性和差异

本文属于Golang学习之旅的一部分,更多文章可到Golang中可见。 本文只要讲讲Golang和其他语言的,差异性,让你可以在其他中,可以快速切换到Golang中。Golang吸收了大量语言的特性,有pythone的简单开发,也解决了很多问题,至于为什么选择使用Golang,只要的PHP的局限性太大,JAVA太重。Pythone做数据分析,自己的能力不行。Docker是K8s,K3s都是又golang编写的,搞不好以后可以往架构的方面发展。 我们先看一下的代码 package main //包,表明代码所在的模块 import ( "fmt" "os" ) //引入代码依赖包 //功能实现 func main() { if len(os.Args) > 0 { fmt.Println("H...阅读全文

博文 2019-12-16 12:32:39 傻梦兽0

Go语言基础:method

我们在C语言中,struct中声明函数,而Go中则不能再struct中声明函数。而是采用另外一种形态存在,Go中叫method。 method的概念 method是附属在一个给定的类型上,语法和函数的声明语法几乎一样,只是再func后面增加了一个recevier(也就是method所依从的主体) method的语法格式 func (r ReceiverType) funcName(parameters) (results) 形象一点说,就是 ReceiverType 类型的所有字段,方法 funcName 都是可以使用的,可以认为 funcName 属于 ReceiverType。 method简单应用 package main import ( "fmt" "math" ) type Re...阅读全文

博文 2016-09-07 00:00:01 uudou
break default func interface select
case defer go map