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

左旋转字符串

题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 思路 1.这道题可以在n的索引位置做分割,将分割所得的前半部分与后半部分反向拼接即可。 Java代码实现 class Solution { public String reverseLeftWords(String s, int n) { return s.substring(n)+s.substring(0,n); } } Golang代码实现 func reverseLeftWords(s string, n int) string { frontStr := s[n:] be...阅读全文

博文 2020-03-04 10:32:56 youzhihua

Has anyone implemented go swagger to generate api docs for an existing go service?

<p>I have a project that uses httprouter and net/http and I want to setup swagger annotations in this existing project to generate godocs.</p> <p>I looked it go swagger and a couple of other libraries but I&#39;m confused how to go about it and it seems to generate code based on the API.</p> <p>I want something...阅读全文

JAVA程序员面试30问(附带答案)

第一,谈谈final, finally, finalize的区别。最常被问到。final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。Finally在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。finalize方法名。Java 技术允许使用 finalize() 方法...阅读全文

博文 2019-03-07 22:00:21 a1127889067

go学习记录--基础语法

本期将go中的基础语法模块通过代码的方式写了一遍。 上传到了github.后续将不断通过更新项目总结go的学习以及总结。下面的语法讲解转自golang官网,我简写了代码事例代码 golang官网:https://golang.google.cn/ref/... golang开源社区:http://tour.studygolang.com/w... 代码地址:https://github.com/A1len/stud... 导读 基础语法 流程控制语句 基础语法 这一部分将对go中的包、函数、申明变量、基本数据类型、常量做一个描述 包 Go程序是通过将程序包关联在一起而组成。一个包又由一个或多个go源文件组成,这些源文件一起声明了属于该包的常量,类型,变量和函数,并且可以在同一包的所有文件中进...阅读全文

博文 2020-03-17 22:32:47 A1len

Go-Spring : Another Go Style!

Go-Spring 是模仿 Java 的 Spring 全家桶实现的一套 GoLang 的应用程序框架,仍然遵循“习惯优于配置”的原则,提供了依赖注入、自动配置、开箱即用、丰富的第三方类库集成等功能,能够让程序员少写很多的样板代码。 1.前言 去年年底的时候,我所在的团队由于业务调整,技术栈也随之发生改变,由之前的 PHP +Java 变成了 Golang + Java。初次接触 Golang,颇不适应,首先就是它那不同一般的语法,然后是没有一个成熟好用的开发框架。语法问题时间长了代码写的多了也就慢慢适应了,但是没有顺手的开发框架就太影响开发效率和代码质量了,作为一个资深的 Java + Spring 全家桶开发者,我希望能改变这一现状。经过一段时间的使用和探索,我发现完全可以搞出一套像 S...阅读全文

博文 2019-08-12 16:04:08 滴滴技术

Go语言从入门到精通-02 | 函数和控制语句

请从github下载配套代码: https://github.com/shuningzhang/learn_golang 前文的内容都是一大坨堆到那的,看上去很难看。下面我们介绍一下如何通过函数对代码进行封装,同时会介绍如何通过控制语句改变程序执行的流程。 没有用的封面 函数 比如我们要实现某个功能,举个简答的例子,实现一个整数加法的功能。实现起来很简单,代码大概如下: var add_1, add_2, add_3 int32 add_1 = 15 add_2 = 16 add_3 = add_1 + add_2 如果我们要在其它地方用这个功能呢?没别的办法,只能讲这个代码重新写一遍。如果用的地方很多,那就要写很多遍。这个时候函数出场了,函数是做什么的呢?它可以将一段功能代码封装起来,通过...阅读全文

博文 2019-03-18 22:34:42 萨泥君

Golang expvar原理

前言 在学习go的metric的过程中,有些实现支持prometheus、expvar等,expvar是什么,竟然在sdk的库中?另外,发现jaeger(github.com/uber/jaeger-lib)也支持这种metric数据暴露方式。 分析 expvar提供将变量暴露出去的机制(暴露到http接口等),java中也有类似的机制。 原理 go默认创建一个全局并发安全的map,可以将key为string,val为实现Var的实例保存进去;同时,将所有的key保存到列表中。 http暴露原理,注册http接口到默认的mutex中,返回数据是所有key,val的结果。 实现 expvar.Int实现接口Var,创建Int时,会将实例添加到map,并将key设置到list中。 func Ne...阅读全文

博文 2019-12-12 00:32:45 huiwq1990

调整数组顺序使奇数位于偶数前面

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路 先将数组遍历一次,然后记录奇数的个数(因为奇数在前,偶数在后) 2.将数组拷贝出一份副本,然后遍历拷贝的副本 3.若是奇数原数组从第一个位置开始覆盖数据,否则从奇数个数的位置开始覆盖数据 Java代码实现 public void reOrderArray(int [] array) { int oddCount = 0; int evenCount = 0; int[] array2 = array.clone(); for (int i = 0; i < array.length; i++) { if(ar...阅读全文

博文 2020-01-07 13:32:52 youzhihua

使用Java SDK实现离线签名

严格来说,tx-signer并不属于SDK,它是bytomd中构建交易、对交易签名两大模块的java实现版。因此,若想用tx-signer对交易进行离线签名,需要由你在本地保管好自己的私钥。 如果你的目的是完全脱离于bytomd全节点,可能需要自己做更多额外的工作。比如,在构建交易时,需要花费若干个utxo(Unspent Transaction Output)作为交易的输入,如果没有全节点则需要自身来维护utxo。当使用tx-signer构建完成一笔交易并签名后,若没有全节点的帮助,也需要自己实现P2P网络协议将交易广播到其他节点。 本文不会对以上技术细节进行讨论,而是利用bytomd全节点查询可用的utxo构建交易,对交易进行签名并序列化后,同样使用bytomd提交交易。 准备工作 将M...阅读全文

博文 2019-03-27 16:34:47 比原链Bytom

Java/Python/Go/clojure【后端合集】总监/经理/架构师/专家/资深工程师/CDN

开发总监/架构师 岗位职责:1.负责全平台产品相关的统筹或部分核心开发工作,包括但不限于iOS、安卓、Web等产品的系统设计、代码实现、算法研究和运维自动化等2.负责主产品的开发流程优化,制定和优化相关的最佳工程实践,执行代码审核、设计审核,提高团队技术能力;3.设计和优化主产品和服务中台之间的架构设计关系,优化中前台之间的接口和开发流程;4.负责参与产品和设计评审,参与商业模式的优化,从整体考虑如何通过技术提高用户体验和商业收益;5.调研相关领域各类算法、系统、架构及其在平台上的应用;6.推进团队专利申请、社区技术交流、开源项目等。岗位要求:1.计算机相关专业国内外一流大学,本科及以上学历,硕士优先;2.6年以上工作经验,但有优秀的技术、管理能力者不限;3.扎实的基础数据结构和通用算法能力...阅读全文

博文 2019-05-07 13:35:09 IT互联网猎头Cathy

Kaitai Struct -A new way to develop parsers for binary structures- needs Go parser :) (http://kaitai.io/)

<p><a href="http://kaitai.io/">http://kaitai.io/</a> Notice: C++/STL C# Java JavaScript Perl PHP Python Ruby ... but no Go yet :) An issue was posted: <a href="https://github.com/kaitai-io/kaitai_struct/issues/146">https://github.com/kaitai-io/kaitai_struct/issues/146</a> Help appreciated!</p> <...阅读全文

【Golang 基础】Go 语言的 Map

Go 语言中的Map   Map 是一个无序的键值对数据集合,通过 key 快速检索数据。 通过 map[keyType]valueType 格式声明 Map; package basic import "fmt" func DeclaratMap(){ // 声明一个空的 map m1 := map[int]string{} fmt.Println(m1) // map[] // 声明一个 map 并赋初始值 m2 := map[int]string{ 0: "Java", 1: "C#", 2: "Python", 3: "Golang" } fmt.Println(m2) // map[3:Golang 0:Java 1:C# 2:Python] } 通过 make(map[keyTy...阅读全文

博文 2019-03-28 02:34:38 爱写作的程序猿

丑数

题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路 1.首先写出几个连续的丑数。 2.我们可以很容易的推导出状态转移方程为:dp[i] = min(2dp[cnt2],3dp[cnt3],5*dp[cnt5])。 Java代码实现 public class Solution { public int GetUglyNumber_Solution(int index) { if(index <= 0){ return 0; } int[] dp = new int[index+1]; dp[1]=1; int ans2= 1,ans3= 1,ans...阅读全文

博文 2020-01-18 15:32:43 youzhihua

五分钟学Java:如何才能学好Java Web里这么多的技术

副本_未命名.jpg 原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 系列文章介绍 本文是《五分钟学Java》系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年多的Java学习和工作经历,总结和沉淀下来的方法论,希望能让Java学习这件事变得更简单,作者目前在阿里做Java,忙里偷闲分享一些技术文章,有兴趣看本系列更多文章可以关注我的公众号【Java技术江湖】 系列文章将会把一些技术学习方法、过程、要领与我的学习经验相结合,更加浅显易懂,并且我也会把我学习时用的资料,书籍和文章拿出来分享给大家,节省你我的时间。所谓授人以鱼也要授人以渔,是本系列文章希望达到的目标。 本文思维导图 在这里插入图片描述 什么是Java Web 不知道Java We...阅读全文

博文 2020-03-05 03:32:48 程序员黄小斜

JVM—【01】认识JVM的内存布局和运行时数据区

1. Java 内存区域 1.1. JVM 内存布局 与 运行时数据区 JVM 内存布局 与 运行时数据区 1.2. Heap 堆 它的唯一目的就是存放对象实例;几乎所有对象实例和数组,分配内存的区域。 堆内存区域是线程共享区域,并发编程时需要考虑线程安全问题。 可以通过-Xms256M -Xmx1024M 设置堆内存大小。 注意: Java程序在运行中,堆空间会不断扩容与减少,会造成系统压力,所以一般设置为同样大小 -X: 表示运行参数 ms: 表示memory start,即起始大小 mx: 表示memory max ,即最大内存 堆分成:新生代和老年代两大块,如名字一样,对象初生在新,有一例外是新生代无法接纳的超大对象会在老年代创建 新生代:对象主要分配在新生代的Eden区域 如果在新...阅读全文

博文 2020-01-11 21:32:49 苡仁ilss

golang 基础(28)defer

square-gopher.png 资源管理与出错处理 defer 调用 有的时候我们需要程序发生错误后需要进行后续的处理,例如关闭文件、结束网络连接等。这时候我们就会用到 def ,如果是 java 的 developer 可以理解为 finally。 确保在函数结束时发生 参数在 defer 语句时计算 defer 列表为后进先出 var wg sync.WaitGroup func say(s string){ for i:=0; i < 3; i++ { fmt.Println(s) time.Sleep(time.Millisecond * 100) } wg.Done() } func main(){ wg.Add(1) go say("Hey") wg.Add(1) go sa...阅读全文

博文 2019-04-03 08:34:39 zidea

JAVA多线程使用场景和注意事项

我曾经对自己的小弟说,如果你实在搞不清楚什么时候用HashMap,什么时候用ConcurrentHashMap,那么就用后者,你的代码bug会很少。他问我:ConcurrentHashMap是什么? -.-编程不是炫技。大多数情况下,怎么把代码写简单,才是能力。多线程生来就是复杂的,也是容易出错的。一些难以理解的概念,要规避。本文不讲基础知识,因为你手里就有jdk的源码。 线程Thread第一类就是Thread类。大家都知道有两种实现方式。第一可以继承Thread覆盖它的run方法;第二种是实现Runnable接口,实现它的run方法;而第三种创建线程的方法,就是通过线程池。我们的具体代码实现,就放在run方法中。我们关注两种情况。一个是线程退出条件,一个是异常处理情况。线程退出有的run方...阅读全文

博文 2019-03-14 01:34:40 JAVA架构学习

Go的接口

有意思的接口规则:自动实现 Go语言也支持接口,但是它的接口规则很有意思: 一个struct不需要显示声明它要实现的接口,只要实现了接口中规定的所有方法,那么就自动实现了相应的接口了。 所以正常情况下,如果有如下一个struct type A struct { } func (*A) func Foo() {} func (*A) func Bar(i int) int { return i } 那么它就自动同时实现了下面三个接口 type IFoo interface { Foo() } type IBar interface { Bar(i int) int } type IFooBar interface { IFoo IBar } 所以我们可以进行如下的赋值: var a *A = ...阅读全文

博文 2019-07-10 03:32:40 千寻客

Go Precompiler

<p>I&#39;m new in go and I am having problems at writing objects (maybe because of the different syntax). Then I realize wouldnt it be easier to make a command line tool that takes code in a syntax similar to Java or other OO langauge and convert into go code. </p> <p>I made some research on how it would work and I think a pr...阅读全文

资源 2017-12-20 08:00:11 xuanbao

删除排序链表中的重复元素

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路 1.这道题的核心思想是跳过值重复的结点。 2.可以设置一个哑结点,防止链表中全部的值都是重复的。 3.可以设置两个值,分别用于标记当前结点是否重复。 4.整体流程就是: 进入循环 保存当前结点 循环跳过重复结点 判断当前结点是否移动过,若移动过,需要跳过 Java代码实现 class Solution { public int findMin(int[] array) { if(array.length == 0) return 0; int left = 0; int right = array.len...阅读全文

博文 2020-03-17 05:32:49 youzhihua

基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.9.0版)

TableGo_20200520 v6.9.0 正式版发布,此次版本更新如下:1、新增对JDK9及以上版本Java环境的支持2、生成JavaBean更名为生成数据模型并且提供了C#、C++、Golang、Rust、Python、Objective-C、Swift等编程语言数据模型的简单模板3、新增生成SpringBoot项目工程的功能,在生成自定义文件界面直接生成一个可以跑起来的项目4、新增对数据库视图的支持5、新增大量自定义模板示例6、新增SQL查询导出数据功能,在生成自定义文件时通过配置SQL查询数据导出生成任何需要的文件7、新增一些内置静态对象用于生成自定义文件时使用,例如:org.apache.commons.lang.StringUtils8、移除是否目录直通,如果文件保存路径设置...阅读全文

博文 2020-05-31 22:33:14 TableGo

Does anyone find it difficult/awkward switching between JavaScript and Go?

<p>I recently gave Go a try. I primarily used PHP before for writing not too complex API for my front-end apps. Since I started using Go for some minor dev things I find it a bit awkward because I&#39;m very used to JS variables and scope rules etc. Oddly this never bothered me with PHP. Anyone else having a hard time?</p> <hr/&g...阅读全文

golang 基础语法

# 变量声明 ```go var count int 私有变量 var Count int 公有变量 var a1,s1=5,"hello" a2,s2:=5,"hello" var ( c int s3 string ) := 只能在函数内使用 ``` # 常量定义 ```go const filename string="test.txt" const a,b=3,4 const ( number int=3 count =4 golang=iota java ) //b kb mb gb tb pb const ( b=1<<(10*iota) kb mb gb tb pb ) ``` # 内建变量类型 ```go bool string (u)int (u)int8 uintprt ...阅读全文

博文 2020-04-04 15:33:53 panzhongke

第一个只出现一次的字符

题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 思路 先将字符串遍历一次,使用map存储每个字符出现的次数。 再将字符串遍历一次,若当前字符在map中对应的次数是1,即为正确答案。 若出了两次循环,说明没有正确答案,返回-1即可。 Java代码实现 public class Solution { public int FirstNotRepeatingChar(String str) { Map charMap = new HashMap<>(); for (int i = 0; i < str.length(); i++) { char c...阅读全文

博文 2020-01-19 23:32:46 youzhihua

给Java程序员的Go私房菜(一) Go语言简介和环境安装

Go语言简介 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。(Google大法好[滑稽]) Go是静态强类型语言,是区别于解析型语言的编译型语言。也有的人说他说21世纪的C语言。 简直太耐看了这golang吉祥物。 golang的优势在于: 部署简单 并发性好 良好的语言设计 执行性好 说这么多不如战绩拿出来看看,有哪些是使用了go开发的 Docker:之前聊过的,一个字香! Kubernetes:俗称K8S,至于是什么就自行百度吧。 Lantern:蓝灯,之前也用过,干啥的你们估计也知道,反正挺香的,可是还是敌不过伟大大大GFW。 环境安装 因为我用的是windows(还是mac香)所以主要还是讲讲win的安装方式,其实也就两种方式,一是通过二进制软文...阅读全文

博文 2020-02-27 12:34:28 HarryZhang6

1 Go语言极速简介

Go语言经常被称为“Golang”,据官方的说法是因为最初无法注册到“go.org”这个域名,而只好使用了“golang.org”这个域名的原因。Go语言大约从2007年开始构想,最初是由谷歌公司的几位工程师设计的。Go语言的设计初衷是为了解决当时较流行的C++、Java等开发语言过于复杂而低效的问题。2009年11月10日,Go语言被正式转为开源项目,这一天也被认为是Go语言正式的诞生日。2012年,Go语言发布了第一个正式版本1.0。到2019年2月,Go语言发布到了1.12版。到目前为止,Go语言最新的版本是1.13。与此同时,Go语言的大版本2从2017年开始已经在构思和讨论中。2018年,Go语言排入了最受欢迎的计算机语言中的前5名;并获评“最有前途的计算机语言”之一。Go语言的主...阅读全文

博文 2020-02-10 11:32:46 陆满庭

Help With Learning Go

<p>So I am not sure if this is where I should be looking or not, but I am trying to get an approval to learn Go for College Credits. To do so I need proof of material that I can reference off of as my professors do not know Go themselves. Basically I want to know if there are any good textbook like resources to learn Go from, as you would see...阅读全文

资源 2018-04-19 14:30:10 blov

Golang之reflect

前言 反射 —— 如果你之前学过一些别的语言,比如java可能就会了解,反射是一个传说中很厉害的操作,算是一个高级用法。而同时,很多人也会告诉你,反射是一个危险的操作,那么在golang中,反射又是怎么操作的呢?今天就来说说golang中的反射reflect。 反射的定义 首先问问自己,你知道什么是反射吗?如果你有一个清楚的定义,证明你已经对反射非常熟悉了。 官方的定义很官方,我就说说我的: 反射,反射,从字面理解就是通过镜子(或类似的东西)看到自己。 而在编程中,反射指的是在运行的过程中看到自己。 在实际的编程过程中我们知道,创建的这个变量或者对象是什么类型或者是什么样子的,同时很容易能对它进行操作。而在运行过程中,程序没有我们的眼睛,它并不知道这个东西是怎么样的,这个时候就需要运用到反射...阅读全文

博文 2019-06-27 20:02:42 LinkinStar

Is Go overkill for stuff like websites, eCommerce, forums and mostly smaller projects?

<p>I&#39;m soon to finish my undergraduate degree in CS and for the most part I&#39;ve already decided I&#39;d like to work as a web developer focusing on the back-end side of things. That said I do enjoy occasionally working in the browser on some front-end projects.</p> <p>My current experience language-wise is:<...阅读全文

资源 2016-12-09 21:00:10 blov

My JWT validation now works on a microservice. How to I throw proper HTTP responses back?

<p>More namely, I need to throw a HTTP 403 back if the JWT verification anything but succeeds. How would you default to that?</p> <p>The JWT verification works now. Here&#39;s my handler.</p> <pre><code>func (ma *myapp) SomeHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set(&#34;Conten...阅读全文

2019-01-17

【CSDN编者按】在 2017年 本年度计算机语言榜这篇中, 我们汇报总结了 2017 年最最火的 TOP 20 计算机语言,全部的语言中,Java、C、C++ 名列前三。Java 凭着可移植性、可扩展性及其庞大的社区性傲视群雄,那麼最原始的 C 和 C++ 为什么依然成活至今?本文的创作者亦发表了自身的观点,他觉得,硬件访问、效率高、跨平台性、持续演进、应用领域广泛等等全是他们风靡迄今不可缺少的关键因素。下列为译文:C 语言问世于 1972 年(45 年前),而 C ++ 问世于 1985 年。或许有些人会觉得在这般悠长的时间里,像 C、C++ 那样古老的语言早已日薄西山,显然你弄错: 1. 访问硬件在许多应用程序中浏览硬件是十分关键的,C 和 C ++ 能够或多或少让人完全控制硬件。直接...阅读全文

博文 2019-01-17 17:35:04 青春埋在这

Go面向对象编程以及在Tendermint/Cosmos-SDK中的应用

大家都知道,Go不是面向对象(Object Oriented,后面简称为OO)语言。本文以Java语言为例,介绍传统OO编程拥有的特性,以及在Go语言中如何模拟这些特性。文中出现的示例代码都取自Cosmos-SDK或Tendermint源代码。以下是本文将要介绍的OO编程的主要概念: 类(Class) 字段(Field) 实例字段 类字段 方法(Method) 实例方法 类方法 构造函数(Constructor) 信息隐藏 继承 利斯科夫替换原则(Liskov Substitution Principle,LSP) 方法重写(Overriding) 方法重载(Overloading) 多态 接口(Interface) 扩展 实现 类 传统OO语言很重要的一个概念就是类,类相当于一个模版,可以...阅读全文

博文 2019-07-13 23:32:40 CoinExChain

Linux下使用-static -lpthread静态编译出现段错误(Segmentation fault)

发自:https://blog.csdn.net/godmaycry/article/details/78718399最近在看golang,感觉go的静态编译思想很不错。于是准备把手头的几个项目静态编译一下,结果编译的时候没报任何警告及错误,一运行就报段错误(Segmentation fault)。gdb逐步调试,发现问题出在std::thread那里。仔细检查了下所有语法,没发现任何问题。关键是动态编译一切正常,加了-static静态编译就会出现这个问题。Google才发现这是一个bug,std::thread Segmentation fault static linking解决方案有两个:1.参数加上-Wl,--whole-archive -lpthread -Wl,--no-whol...阅读全文

博文 2020-05-29 11:34:13 liugensite