首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

翻译】Kotlin致简代码之路

翻译】Kotlin致简代码之路 2017-06-30 by Liuqingwen | Tags: Kotlin 翻译 | Hits 一、前言 挺适合新手的一篇建议性博文。...原文链接:Clean Code with Kotlin 因本人水平有限,翻译不好之处还请多包涵,文章中 “ Clean Code ” 我喜欢翻译成“致简代码”,但是这个名字的书一般是被翻译成“整洁代码”...二、正文 Kotlin致简代码之道 利用 Koltin 我们可以写出易懂、简短、安全而又富有表现力的代码。就像是致简代码,不是吗?...在我们开始之前,弄清楚什么是致简代码很重要。首先,致简代码是一种很容易理解的代码代码必须直观且易读。我们可以通过让自己的代码更加简洁、简短、简单并富有表现力来达到这个目的。...Kotlin 翻译

1.4K30

Atom飞行手册翻译: 2.6 代码

代码代码段是一个非常有效的工具,可以从一个快捷方式中快速生成常用的代码语法。...选择其中一个之后会执行光标所在的代码段(或者多个光标所在的代码段)。 创建你自己的代码段 所以说这样太爽了。但是,如果语言包中没有包含一些东西,或者你的代码中要编写一些自定义的东西,那会怎么样呢?...代码段的格式 现在让我们看一看如何编写代码段,基本的代码段格式像这个样子: '.source.js': 'console.log': 'prefix': 'log' 'body':...下一层的键是代码段的名字,用于在代码段菜单中,以一个更具可读性的方式来描述代码段。通常来说,这里最好使用对人来说具有可读性的字符串。...在每个代码段的名字下面是prefix,用于触发代码段,以及body,当代码段被触发后用于插入。 每个后面带有数字的$是tab的停止位置。在代码段被触发之后,通过按下tab键来遍历它们。

53620

神经机器翻译代码(上)

目录 机器翻译 统计机器翻译 神经机器翻译 编码器 解码器 注意机制 训练 为翻译德语短语英译的Keras完整代码 机器翻译 机器翻译是将一种语言的源文本自动转换成另一种语言的文本的任务。...统计机器翻译 统计机器翻译(Statistical machine translation,简称SMT)是使用统计模型,学习将文本从源语言翻译成目标语言,给出大量实例的语料库。...神经机器翻译 神经机器翻译,简称NMT,是利用神经网络模型来学习机器翻译的统计模型。...与传统的基于短语的翻译系统不同,基于短语的翻译系统由许多单独调整的小的子组件组成,神经机器翻译试图建立和训练一个单一的、大的神经网络,它可以读取一个句子并输出正确的翻译。...——联合学习对齐和翻译的神经机器翻译,2014 因此,神经机器翻译系统被称为端到端系统,因为翻译只需要一个模型。 NMT的优点在于它能够以端到端方式直接学习从输入文本到相关输出文本的映射。

1K10

谷歌Python代码风格指南,翻译版来了!

非常感谢我们的忠实读者 shendeguize,在后台留言告诉我,已经翻译了《谷歌Python代码风格指南》 ,大家这样相互帮助,感觉真是太好了。...2020.01.31 Translator: shendeguize@github Link: https://github.com/shendeguize/GooglePythonStyleGuideCN 本翻译囿于水平...最精简try/except表达式内部的代码量,try代码块里的代码体量越大,月可能会在你不希望抛出异常的代码中抛出异常,进而在这种情况下,try/except掩盖了一个真实的异常 使用finally来执行代码...(此处翻译可能有误) ... 2.13 属性 使用属性可以通过简单而轻量级的访问器和设定器方法来来访问或设定数据. 2.13.1 定义 一种装饰器调用来在计算比较轻量级时作为标准的属性访问来获取和设定一个属性的方式...(译者:这段翻译可能不准确) The six, future, or past libraries 当项目需要支持Python2和3时,根据需求使用six,future和past. 2.21 带有类型注释的代码

1.4K20

翻译】200行代码讲透RUST FUTURES (2)

为了好玩,我在大多数示例中添加了一小段可运行代码。如果你像我一样,事情会变得更有趣,也许你会看到一些你从未见过的东西。 线程 现在,实现这一点的一个方法就是让操作系统为我们处理好一切。...我们只需为每个要完成的任务生成一个新的操作系统线程,并像通常那样编写代码。 我们用来处理并发性的运行时就是操作系统本身。...典型的流程是这样的: 运行一些非阻塞代码 对某些外部资源进行阻塞调用 跳转到main”线程,该线程调度一个不同的线程来运行,并“跳转”到该栈中 在新线程上运行一些非阻塞代码,直到新的阻塞调用或任务完成...下面的代码非常不安全,只是为了展示一个真实的例子。这绝不是为了展示“最佳实践”。这样我们就能达成共识了。 #!...如果上面的代码很难理解,不要感到沮丧。如果不是我自己写的,我可能也会有同样的感觉。你随时可以回去读,稍后我还会解释。

69110

翻译】200行代码讲透RUST FUTURES (6)

目前还没有严重的错误,但是您可以想象,使用这些代码很容易创建严重的错误。 我创建了一个图表来帮助可视化正在发生的事情: ? 图1: 交换前后 正如你看到的,这不是我们想要的结果....("a: {}, b: {}", Test::a(test2.as_ref()), Test::b(test2.as_ref())); } 正如您从运行代码所得到的错误中看到的那样,类型系统阻止我们交换固定指针...固定到堆是安全的,这样用户不需要实现任何不安全的代码: use std::pin::Pin; use std::marker::PhantomPinned; #[derive(Debug)] struct...Unpin能够阻止API的使用者移动T,除非他写出unsafe的代码. Pinning对于内存分配没有什么特别的作用,比如将其放入某个“只读”内存或任何奇特的内存中。...不安全的代码并不意味着它真的“unsafe” ,它只是减轻了通常从编译器得到的保证。一个不安全的实现可能是完全安全的,但是您没有编译器保证的安全网。

62820

翻译】200行代码讲透RUST FUTURES (7)

七 实现Futures--主要例子 我们将用一个伪reactor和一个简单的执行器创建我们自己的Futures,它允许你在浏览器中编辑和运行代码 我将向您介绍这个示例,但是如果您想更深入的研究它,您可以克隆存储库并自己处理代码...,或者直接从下一章复制代码。...两者都可以讲一个函数或者代码块转换成一个Future 这些Future是相当简单的。想象一下几章前我们的生成器。...就我们现在的例子来看,它并不比常规的同步代码好多少。对于我们来说,如果需要在同一时间等待多个Future,我们需要spawn它们,以便执行器同时运行它们。...因为我们自己创建一个这样的Parker也不需要很多行代码,所以我们将展示如何通过使用 Condvar 和 Mutex 来解决这个问题。

1.2K30

做人肉代码翻译器是什么感受?

我要做的事情就是把上千行只知道很重要,不知道干什么的,没有文档,没有可读性, 有几百万人在用的,输出的内容连一个字符都不能有误的php代码改成golang代码 这不仅艰难, 而且乏味 我先要使这些代码在开发环境中运行起来...既然不知道旧代码干了些什么, 那只能把自己当作人肉编译器了,通过自己对php和golang掌握, 人肉将php代码转换成golang代码,程序的逻辑丝毫不变,变的只是语法元素。...所以吧, 我哼哧哼哧写完上面这些代码, 还要写测试代码, 对比新旧两个功能返回的数据是否一致,需要精确到连一个字符都不能有差别。...于是我又是检查测试脚本, 又是琢磨旧代码, 又是修改新代码的, 使不一致的数据项减少到了五百项 还是不行 于是我又是检查测试脚本, 又是琢磨旧代码, 又是修改新代码的, 使不一致的数据项减少到了三百项...我再再再再再…一次体会到,屎一样的代码害死人、猪队友害死人(已离职) 放几张旧代码截图大家感受下 ? ? ? 这只是冰山一角

1.9K80
领券