最近Oracle又在和Google撕的厉害,才知道还有这么Kotlin在Android像Swift在Mac的地位一说. Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源.与Java相比,Kotlin的语法更简洁.更具表达性,而且提供了更多的特性,比如,高阶函数.操作符重载.字符串模板.它与Java高度可互操作,可以同时用在一个项目中. 按照JetBrains的说法,根据他们多年的Java平台开发经验,他们认为Java编程语言有一定的局限性和问题,而且由于…
WeTest 导读 Kotlin 已经出来较长一段时间了,有些同学已经对Kotlin进行了深入的学习,甚至已经运用到了自己的项目当中,但是还有较多同学可能只是听过Kotlin或简单了解过,这篇文章的目的是让这些同学对Kotlin有一个系统全面的认识,让有兴趣的同学在之后学习的时候能更加的轻车熟路. 什么是kotlin? 一.一门静态编程语言 跟java,c一样的强类型语言,变量的数据类型在编译时确定.对比的JavaScript,python则是动态编程语言. 二.JetBrians开发设计 一家…
---恢复内容开始--- Swift作为苹果官方推出的IOS开发的推荐语言,在过去的几年间受到了越来越广泛的关注,其实编程的人都知道,不同的编程语言大同小异,掌握一门新的语言关键是了解它与其它语言不同的特性,这几个小节,将会介绍Swift语法的雨常用的C/C++和Java语言不同的地方,如果有不对的地方还是希望大家可以指正. 一.总体上的 第一节,我们会留给那些Swift语言的总体上的特性: 1)Swift一段程序的结束可以用":"也可以不用":",但是苹果的官方文…
这一部分,主要讲Swift中创新的可选型(optionals) 一.概要 可选型是Swift创新的一种新的类型,首先看一下可选型的应用场景: var errorCode : Int = 404 这时候errorCode的值是404,表示此时的错误状态码是404,当产生一种错误的时候就会获得其对应的errorCode, 但是如果没有错误那应该怎么办呢? 在C/C++和Java中我们会给errorCode赋值为0或者是null(其实null也就是0),但是我们怎么能够保证0不是一种错误的状态码呢?…
这一节将会提到Swift中其他的关于函数的应用,这些内容包括有: 默认参数值和可变参数值.常量参数.返回函数类型和函数嵌套: 一.默认参数值和可变参数值 对默认参数值是指在函数的声明中就已经定义了参数的初值,比如: func sayHelloTo(name:String,greeting:String = "Hi", punctuation:String = "!"){ } 在调用的时候可以是: sayHelloTo(name:"PlayGround&qu…
这一节,我们将会讨论一下Swift中的函数相关的基本内容 首先是函数的创建: func sayHello (name:String) -> String { return "Hello"+name } 上述即是函数的创建方法: func函数声明的关键字 sayHello函数名 (name:String)参数列表 -> String函数的返回值 { return "Hello"+name函数体 } 当函数没有返回值的时候可以这样写: func sayHel…
这一部分的主要内容是Swift中的Collections 我们知道Java中的Collection基本上是每一个Java程序猿接触到的第一个重要的知识点. 在Swift中也不例外,Swift中的Collection有三个:数组(Array),字典(Dictionary)和集合(set) 一.数组 数组的创建方法,请参考另外一篇文章Swift3中数组创建方法,这里要说的是Swift中一些数组的特性: 1.向数组中添加元素: 向数组中添加元素除了可以使用append方法,使用+也是可以的: var…
Overview 本章主要介绍高级条件语句中的 switch 语句以及其增强版的模式匹配. Java 篇 Switch 特点 Java 中 switch 语句功能类似 if,但是 switch 主要用在多条件分支上. switch 语句由 case 分支和 default 组成,case 分支用于检查条件,且参数必须为常量,default 用于执行当任何 case 分支都不匹配时执行的语句. switch 语句 在 Java 1.7 以前只支持基本类型,Java 1.7 开始支持 String…
众所周知,java是基于JVM的开发语言,但能够在JVM上运行的开发语言不仅仅有java,目前还有很热门的kotlin(kotlin不仅仅只能开发Android).scala.groovy等等.目前国内主要的web开发语言还是以java居多,作为主流的面向对象开发语言,不可否认能够被工业社会所全面接受是有其优势的.但是从另一方面来讲,作为OOP也有其自身的局限性,即使官方也在积极的扩展java的各种功能,比如lambda的支持等,但这种阉割版的"FP"用起来还是有些差强人意,对于一些热…
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. Find the total sum of all root-to-leaf numbers. Note: A leaf is a node…