这章主要讲当前 kotlin 的一些编码习惯. 命名 如无疑问,kotlin 的命名风格与以下的java风格一样: --驼峰命名法(不要使用下划线) --类名首字母大写 --方法和属性名首字母小写 --四个空格缩进 --公共方法要写文档注释 冒号 冒号分开类与父类时,要在冒号前面加空格,而分开类与实例时则不需要加. 1 interface Foo<out T : Any> : Bar { 2 fun foo(a: Int): T 3 } Lambdas lambda 表达式中,花括号前后要用空…
语言风格 这里整理了 kotlin 惯用的代码风格,如果你有喜爱的代码风格,可以在 github 上给 kotlin 提 pull request . 创建DTOs(POJSs/POCOs) 文件: data class Customer(val name: String, val email: String) 上述代码提供了一个包含以下功能的 Customer 类: getters (and setters in case of vars) for all properties equals(…
基于官网的Getting Start部分,翻译如下: 基础语法 定义一个包 包的声明必须放在文件头部: package my.demo import java.util.* // ... 不需要加上package的路径,kotlin可以自动定位package的位置. 查看更多packages 定义函数 参数是两个int型,并且返回值也是int型的函数: fun sum(a: Int, b: Int): Int { return a + b } 没有指定返回值的函数表达式,编辑器会自动推断返回类型…
基于官网的Getting Start的基础语法教程部分,一共三节,这篇是第一节,翻译如下: 基础语法 定义一个包 包的声明必须放在文件头部: package my.demo import java.util.* // ... 不需要加上package的路径,kotlin可以自动定位package的位置. 查看更多packages 定义函数 参数是两个int型,并且返回值也是int型的函数: fun sum(a: Int, b: Int): Int { return a + b } 没有指定返回值…
写在前面 在学习 Go 语言之前,我自己是有一定的 Java 和 C++ 基础的,这篇文章主要是基于A tour of Go编写的,主要是希望记录一下自己的学习历程,加深自己的理解 Go 语言入门(三)并发 Go 程 「Go 程」goroutine:由 Go 运行时管理的轻量级线程. 运行「Go 程」很简单,只要执行下面代码: go f(x, y, z) 就会启动一个新的 Go 程并执行f(x, y, z).f.x.y和z的运算发生在当前的 Go 程中,而f的执行发生在新的 Go 程中. 「Go…
ReadHub项目Kotlin版转换指南(一.环境搭建) ReadHub项目Kotlin版转换指南(二.数据库和网络请求) ReadHub项目Kotlin版转换指南(三.MVP架构) Android 开发中的 MVP 架构相信大家都已经熟悉,不熟悉的请右转 Google,ReadHub 项目从 Java 转换成 Kotlin 过程中,我们需要一套新的架构方式来实现(Kotlin 项目中没有使用 dagger2). base 为 MVP 架构的基础部分,user 为其具体使用过程. base Ba…
C语言书籍推荐 浙工大图书馆中,计算机的书都集中在三楼TP区.我个人推荐下面这么几本书. <Head First C>.Head First系列的书质量基本都很高.该书有很多插图,总体上就是用一种轻松愉快的方式给新手讲解令人头疼的C语言.书虽然有些厚但其实并没多多少字,内容上也相当丰富,英文原版的阅读难度大概也就高中阅读理解的难度.图书馆有其中译本<嗨翻C语言>,但我强烈推荐去看其英文影印版<深入浅出C语言>,一来这书的英文版本身难度就不大,二来容易树立阅读英文资料的信…
其实本来我也是打算使用Tomcat来部署Workbench的,但是在网上看了几篇文章,超级繁琐的配置.各种版本.实在看不下去了索性就直接使用Docker来部署了.本次部署的版本是最新稳定版,对应drools的7.14.0.Final版本. 1. 拉取镜像 1 docker pull jboss/drools-workbench-showcase:latest 镜像文件比较大,870多M,可能需要一些时间,不要着急. 2. 配置 镜像拉取完毕后首先通过以下命令启动 1 docker run -p…
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD…
Hello 各位小伙伴大家好,我是小栈君,假期一眨眼就过去了.不知道大家玩的是否开心呢? 上次我们讲到了关于Go语言的流程控制,小栈君也希望小伙伴跟着小栈君一步一个脚印的敲一下代码,相互进步.本期我们要分享的Go语言系列之函数. 一.什么是函数? 函数是指一段在一起的.可以做某一件事儿的程序.也叫做子程序.(OOP中)方法. 一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能.所有的高级语言中都有子程序这个概念,用子程序实现模块的功能. 在C语言中,子程序的作用是由一个主函数…
本系列前面的文章: Go语言入门系列(一)之Go的安装和使用 Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 1. 声明 map是一种映射,可以将键(key)映射到值(value),格式为:map[keyType]valueType. 声明一个map并初始化它,使用key:value进行初始化: var scores = map[string]int {"数学":100, "语文":90, "Go":100} 如果不想直…
Go语言入门系列前面的文章: Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 1. 指针 如果你使用过C或C++,那你肯定对指针这个概念不陌生. 我们需要先介绍两个概念:内存和地址. 1.1. 内存和地址 我们写的代码都存储在外存(C盘.D盘)中,比如我存在了D:\Work\Program\go目录下.如果你想要运行你的代码,必须先把你的代码加载进内存中,然后交给CPU执行计算,而CPU计算的结果也会存到内存中. 内存的存取速度快,…
Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经介绍过了Go语言的函数的基本使用,包括声明.参数.返回值.本文再详细介绍一下函数的其他使用. 1. 变参 Go语言的函数除了支持0个或多个参数,还支持不定数量的参数,即变参.声明方式为: func foo(变参名 ...参数类型) 函数类型 { //函数体 } 下面是一个具体的函数,它接收不定数量的…
今天我们继续来学习C语言的入门知识点,第一课:C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记! 21. 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据.输入可以是以文件的形式或从命令行中进行.C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中. 当我们提到输出时,这意味着要在屏幕上.打印机上或任意文件中显示一些数据.C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中. 标准输出 C 语言把所有的设备都当作…
过去一年,使用 Kotlin 来为安卓开发的人越来越多.即使那些现在还没有使用这个语言的开发者,也会对这个语言的精髓产生共鸣,它给现在 Java 开发增加了简单并且强大的范式.Jake Wharton 在他的 Øredev 的讨论中,提到了 Kotlin 是如何通过提升安卓开发的语言特性和设计模式来解决这些严重的问题,通过这些方法你可以清除那些无用的 API 还有无效代码.充分利用扩展特性来解决你的开发中的模板性代码的问题!   为什么要推广这个语言?   好吧,大伙.欢迎来到这里.我们今天的主…
原文:Swift语言指南(三)--语言基础之整数和浮点数 整数 整数指没有小数的整数,如42,-23.整数可以是有符号的(正数,零,负数),也可以是无符号的(正数,零). Swift提供了8,16,32,64位形式的有符号和无符号的整数,这些整数遵循与C语言相似的命名规则.如8位无符号整数的类型为UInt8,32位有符号整数的类型为Int32,和Swift语言的其它类型一样,这些整型命名以大写字母开头. 整数的边界 你可以通过min或max属性为每一个整数类型指定一个最小值或最大值: let 最…
入门指南:使用ZooKeeper来协调分布式应用 这篇文档包含了让你快速上手ZooKeeper的信息.主要是针对那些想要试一把ZooKeeper的开发人员,包含了安装一个单一ZooKeeper服务器的简单指令,一些验证ZooKeeper是否运行的简单命令以及一个简单的编程例子.最后,为了方便,还写了一些关于更复杂的安装知识,比如运行一个备份的部署,以及优化事务记录.但是完整的商业部署过程需要参考ZooKeeper管理员指南. 前期条件 系统要求请参考管理手册. 下载 为了获取ZooKeeper的…
[reset clock control  复位和时钟控制器] 时钟信号对于处理器非常重要,比如我们熟悉的 CPU 就是由时钟信号驱动的,而主频就是内核的的时钟信号频率.Cortex-M3 有着复杂的时钟树架构,而且我们需要在初始化阶段配置好时钟参数. 本文将会先介绍时钟相关的概念,然后介绍使用库函数便捷设置时钟总线的方法,在文章最后再深入学习库函数背后等效的时钟寄存器原理. 时钟源 STM32F103 中有 4 种可选时钟源: 高速外部时钟 (HSE): 以外部晶振作时钟源,晶振频率可取范围为…
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务还可以保证事务内的命令会依次执行不被其他命令插入. 2.命令MULTI开启事务,之后发送一些列需要执行的指令,最后发送EXEC执行事务,一旦成功发送EXEC,所有的命令就一定会被执行. 3.当redis事务中的命令发生了语法错误时,执行EXEC后就会直接返回错误,其中语法正确的命令也不会执行. 4.当redi…
本节主要介绍Redis的5种数据类型,同时使用Python API来操作Redis,其中python版本为3.5, redis版本为4.0.2. redis-py 的API的使用可以分类为: (1)连接方式 (2)连接池 (3)操作 String 操作 Hash 操作 List 操作 Set 操作 Sort Set 操作 (4)管道 (5)发布订阅 1. redis文件配置 (1)配置redis配置文件     在之前的博客https://www.cnblogs.com/xuejiale/p/1…
Microsoft Orleans 在.net用简单方法构建高并发.分布式的大型应用程序框架. 原文:http://dotnet.github.io/orleans/ 在线文档:http://dotnet.github.io/orleans/What's-new-in-Orleans 源码地址:https://github.com/dotnet/orleans 简介:Orleans 框架可以构建大规模.高并发.分布式应用程序,而不需要学习专业分布式以及并发知识框架.它是由微软研究和设计应用于云计…
用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数据类型.控制流结构.函数.指针等能够有较深入的理解.当然本阶段最重要的是通过大量编写代码实践,培养夯实的编码能力. 建议:如果此刻你还不知道Linux系统或没使用过Linux系统,那么从现在开始使用Linux吧,对于开发者来说,掌握基本的Linux操作.Linux的设计理念,无论从企业招聘需求还是对…
用C语言开始编写代码 初级:C语言入门必备 (以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数据类型.控制流结构.函数.指针等能够有较深入的理解.当然本阶段最重要的是通过大量编写代码实践,培养夯实的编码能力. 建议:如果此刻你还不知道Linux系统或没使用过Linux系统,那么从现在开始使用Linux吧,对于开发者来说,掌握基本的Linux操作.Linux的设计理念,无论从企业招聘需求还…
转自:http://www.linuxdiyf.com/viewarticle.php?id=174074 Unix和Linux下C语言学习指南 引言 尽管 C 语言问世已近 30 年,但它的魅力仍未减退.C 语言继续吸引着众多的开发者,他们为了编写.移植或维护应用程序而必须学习新技能. 本文是为了满足对C语言初学者或想提高自身C语言修为的开发人员的需要而写的.希望对您的学习和工作有所帮助.您也许不赞同其中的某些方法,但我们希望您会喜欢其中的一些. 本文不介绍作为一个程序员应掌握得语言细节,而是…
小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认…
Tendermint作为当前最知名且实用的PBFT框架,网上资料并不很多,而实现Tendermint和以太坊的Go语言,由于相对小众,也存在资料匮乏和模糊错漏的问题.本文简单介绍PBFT概念和Go语言[&开发环境]关键知识点,其中大部分都可单独成篇,限于篇幅,文中提供诸多链接供大家深入.日后可能会基于Tendermint出系列博文,此篇纯当基础. 概念 下述一部分在前篇区块链初探中亦有涉及,可结合着看. 分布式系统中的异步和共识 异步:这里的异步不同于通常技术术语中的异步调用的异步,而是指在一个…
1.入门指南 1.1简介 Apache的Kafka™是一个分布式流平台(a distributed streaming platform).这到底意味着什么? 我们认为,一个流处理平台应该具有三个关键能力: 它可以让你发布和订阅记录流.在这方面,它类似于一个消息队列或企业消息系统. 它可以让你持久化收到的记录流,从而具有容错能力. 它可以让你处理收到的记录流. Kafka擅长哪些方面? 它被用于两大类应用: 建立实时流数据管道从而能够可靠地在系统或应用程序之间的共享数据 构建实时流应用程序,能够…
[From] http://huangz.iteye.com/blog/1325228 导读 本文的目标是为熟悉 Ruby.Python或者其他类似语言.并对 Lisp 或者函数式编程有一定程度了解的程序员写的 Clojure 快速入门指南. 为了让文章尽可能地精炼且简单易懂,本文有以下三个特点: 一:不对读者的知识水平作任何假设,当遇上重要的知识点时,只给出 wikipedia 等网站的链接引用而不对知识点进行解释,有需要的读者可以沿着链接查看,没需要的直接略过就行了. 二:和第一条类似,没有…
通过"javaCV入门指南:序章 "大家知道了处理音视频流媒体的前置基本知识,基本知识包含了像素格式.编解码格式.封装格式.网络协议以及一些音视频专业名词,专业名词不会赘述,自行搜索即可. 本章将正式开始javaCV之旅,先看一下官方文档里的介绍 JavaCV是计算机视觉领域的开发人员(OpenCV.FFmpeg.libdc1394.PGR FlyCapture.OpenKinect.li.lsense.CL PS3 Eye Driver.videoInput.ARToolKitPlu…
Sphinx中文入门指南 wuhuiming<blvming在gmail.com>,转载请注明来源和作者 最后修改:2010年1月23日 1.简介 1.1.Sphinx是什么 1.2.Sphinx的特性 1.3.Sphinx中文分词 2.安装配置实例 2.1 在GNU/Linux/unix系统上安装 2.1.1 sphinx安装 2.1.2.sfc安装(见另文) 2.1.3.coreseek安装(见另文) 2.2 在windows下安装 3. 配置实例 4.应用 4.1 在CLI上测试 4.2…