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

DockOne技术分享(三十七):玩转Docker镜像和镜像构建

【编者的话】本次分享从个人的角度,讲述对于Docker镜像和镜像构建的一些实践经验。主要内容包括利用Docker Hub进行在线编译,下载镜像,dind的实践,对于镜像的一些思考等。 @Container容器技术大会将于2016年1月24日在北京举行,来自爱奇艺、微博、腾讯、去哪儿网、美团云、京东、蘑菇街、惠普、暴走漫画等知名公司的技术负责人将分享他们的容器应用案例。 前言本次分享主要是从个人实践的角度,讲述本人对于Docker镜像的一些玩法和体会。本文中大部分的内容都还处于实验的阶段,未经过大规模生产的实践。特此说明。思虑不全或者偏颇之处,还请大家指正。 镜像应该算是Docker的核心价值之一。镜像由多层组成。那么对于一个层来说,就有了两个角度来看待。一个角度是把这层当做一个独立的单位来看...阅读全文

博文 2017-06-25 15:01:24 xiaolunsanguo

golang打印金字塔

上一篇文章学习如何使用for循环实现矩形,现在学习一下如何运用golang打印出金字塔首先简单实现一个3层金字塔package main import ( "fmt" ) func main() { //i表示总层数 for i :=1 ; i <=3; i++ { //在打印*前先打印空格,空格的规律为 总层数-当前层数 for j:= 1; j <= 3-i; j++ { fmt.Print(" ") } //k表示每层打印多少*,规律为 2 * i - 1 for k :=1; k <= 2 * i - 1; k++{ fmt.Print("*") } //打印一行后换行 fmt.Println() } }运行结果如下​然后在上面的基础上我们定义一个变量 row 控制一下层数。var ...阅读全文

博文 2019-02-14 12:45:03 go-gz

39级台阶(竞赛题,Go语言实现)

问题重现: 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢? 请你利用计算机的优势,帮助小明寻找答案。 递归解决方案(Go语言实现) package main import ( "fmt" ) /*递归核心 作者:天之 *@i表示爬楼梯次数 *@now表示当前所在楼层 *@top表示楼梯总层数 *@*count计满足条件的数 */ func f(i, now, top int, count *int) { if now == top { //最后必须迈右脚,0迈左脚,1...阅读全文

Functional Go: Vector Trie 的实现

上一篇 文章介绍了多种实现函数式编程当中持久化数据结构的思路, 其中重点对 Vector Trie 这种数据结构的实现原理进行了解释。这一次我们就使用 Golang 来初步地实现这种数据结构。 这篇文章是系列文章的一部分,如果还没有浏览过文章的其它部分请参考: 持久化数据结构简介 Vector Trie 的实现 (本文) Transient 及持久化 首先我们来回顾一下 Vector Trie 的设计思路,为了代替 ArrayList 这种数据结构以及兼顾高性能的随机访问和内存使用, Vector Trie 主要采用了以下几种设计: 将 ArrayList 连续的地址空间切分成一段一段定长的数组 使用 Trie 树结构将这些分段组织起来 读取和写入的时候,利用 Trie 树检索的方法查找目标...阅读全文

博文 2017-09-26 22:35:58 meter

HDU 3715 Go Deeper(2-SAT + 二分)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3715 【题目大意】 有一个递归代码: go(int dep, int n, int m) begin output the value of dep. if dep < m and x[a[dep]] + x[b[dep]] != c[dep] then go(dep + 1, n, m) end 关键是看第四行, 如果满足条件dep < m and x[a[dep]] + x[b[dep]] != c[dep] 那么就可以进入下一层递归, x数组只取{0, 1}, c数组取{ 0,1,2 }, 而a和b数组取0~m, m是最大能递归的层数,也是数组x的大小。 问最多能递归多少层? 【思路】...阅读全文

博文 2016-02-09 17:00:05 shuangde800

编写 dockerfile 最佳实践

docker 官方文档推荐使用Dockerfile构建镜像的最佳实践。 创建短生命周期容器 基于Dockerfile生成镜像,使用这个镜像生成的容器,我们要尽可能的缩短容器的生命周期。这里我的理解是,不要将容器当做vm 来使用, 这个容器可以被停止或者销毁, 然后可以根据设置和配置的变动重新生成新的容器。 理解构建上下文 当你触发docker build 命令时,当前目录就被称为构建上下文(build context)。默认情况下 Dockerfile文件就在这个目录下, 但是可以通过 -f 参数来指定Dockerfile的位置。不管Dockerfile在哪里,当前目录中的所有文件和目录都会作为构建上下文发送到 docker daemon 进程。 构建上下文示例 创建一个目录并且使用cd进入...阅读全文

博文 2019-04-14 14:34:40 jssyjam

不同编程语言在发生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-23 14:34:41 JerryWangSAP

不同编程语言在发生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

golang打印九九乘法表

逻辑分析:运用多重循环控制,定义两个变量,一个变量控制层数,另外一个变量控制每一层算术的个数。代码如下:package main import "fmt" func main () { //i表示打印的层数 for i := 1; i <= 9; i++ { //j表示每一层打印算术的个数 for j := 1; j <= i; j++ { fmt.Printf("%v * %v = %v \t",i , j ,i * j) } fmt.Println(" ") } }运行结果:​ 图像 小部...阅读全文

博文 2019-02-14 16:20:16 go-gz

Redis的数据结构与对象——跳跃表

引言:跳跃表是一种有序数据结构,它通过在每个节点中维持多个执行其他节点的指针,从而达到快速访问节点的目的。跳跃表的查询速度可以和平衡书相媲美,平均时间复杂度O(logN),最坏O(N),但实现起来比平衡树要简单很多。跳跃在redis中只有两个地方使用,一个是有序集合(zset还使用了字典加跳跃表实现),另一个是集群节点中用作内部数据结构。一、实现跳跃表由redis.h/zskiplistNode和redis.h/zskiplist两个结构体实现1.1、跳跃表节点 struct zskiplistNode{ struct zskiplistNode *backward;// 后退指针 double score;// 分值 robj *obj;// 成员对象 struct zskiplistLe...阅读全文

博文 2020-04-24 01:32:43 rookie_yuqi

数据结构之跳表

跳表 前言 文中附代码实现. 在公众号回复 【跳表】 也可以获取哦。 什么是跳表 跳表是一种数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(log n),优于普通队列的O(n)。 from. 维基百科 引题 线性表这种数据有两种具体实现, 数组和链表。具体的内容之前的文章里也有说过,可以翻翻看哇~。在这里两种数据结构中,数组的优点是查找速度快,而链表的优点是增删的效率高,这也是我们常说的。其实,非也。 数组是一种内存连续的数据结构,其优点是可以通过首地址+N*(sizeOf(Node)) 来快速获取指定位置上的元素.假如我们不知道指定元素的位置呢? 链表是一种非内存连续的数据,其优点是通过改变指针地址来快速增减元素。很明显的问题,你首先要知道你要...阅读全文

博文 2020-01-06 23:32:47 方小白_