Scala学习(杂1)
简介 有一些内容不是很容易归类,篇幅也不够,但是是需要了解的部分,暂且放在这里。 标识符 除了关键字,运算符,数字,字符串和一些特殊符号,剩下的就是标识符,标识符构成了代码的重要部分。 Scala标识符可以由$,_,字母,数字,以及大部分的字符(包括中文字符)构成。 要点: _单独使用时不是标识符 数字不能作为标识符开头 $不建议使用在标识符中 某些字符会被当做运算符处理,比如→,注意和-> […]
简介 有一些内容不是很容易归类,篇幅也不够,但是是需要了解的部分,暂且放在这里。 标识符 除了关键字,运算符,数字,字符串和一些特殊符号,剩下的就是标识符,标识符构成了代码的重要部分。 Scala标识符可以由$,_,字母,数字,以及大部分的字符(包括中文字符)构成。 要点: _单独使用时不是标识符 数字不能作为标识符开头 $不建议使用在标识符中 某些字符会被当做运算符处理,比如→,注意和-> […]
简介 apply和unapply指的是持有这两个名字的方法,对于这两个方法,Scala编译器做了一些特殊的设定,赋予了它们特殊的意义,让它们看起来更好看一点。 从数组讲起 在前面的内容里,我们已经定义过数组了,但是还从来没有介绍过如何使用数组,在这里补齐一下:
1 2 3 4 5 |
val arr = new Array[Int](10) // 定义Int类型,长度为10的数组,可以看到这里用了泛型 val arr2 = Array(1, 3, 5, 7) // 直接从内容构造数组,类似Java里的new int[]{1, ...} arr(3) = 10 // 赋值 println(arr2(3)) // 使用 |
刚接触Scala的人一定很疑惑为什么使用()而不是常用的[]作为数组访问 […]
简介 在任何语言里,运算符都是很重要的部分,Scala也不例外。然而,从某种意义上讲,Scala根本就没有除了直接赋值运算符=以外的运算符。这是怎么回事儿呢?接下来就开始讲。 本质 在Scala中,除了=以外,运算符其实都是方法。中缀运算符是一个参数的方法,前缀运算符和后缀运算符是无参方法。在其他语言中我们熟悉的表达式到了Scala中可能实质上只是一系列方法调用。比如: [crayon-673f2 […]
简介 在Java或者C++里面,像列表(List)这些数据结构,在编写的时候,都不需要指定其中元素的类型,而是构造的时候指定,这一特性就称为泛型。同样,Scala中也提供了泛型,而且功能比Java的泛型更加强大。 类的泛型 可以给一个类添加泛型,这样,在编写的时候就不需要考虑这一类型的具体情况,而是使用一个标记来注明。泛型的定义列表用[]包含,用,分隔,卸载类名之后,构造函数参数列表之前,泛型的具 […]
简介 作为一个强类型语言,类型是语言中很重要的一部分。和Java相比,Scala的类型更加丰富。 基本类型 Scala没有基本类型,所有对应Java中的基本类型都是类: Java基本类型 Java类 Scala类型 说明 byte Byte Byte -128~127 short Short Short -32,768~32,767 int Int Int -2,147,483,648~2,147 […]
简介 如果说类和方法构成了程序的框架,那么实际完成的代码就是程序的血肉。Scala中也提供了常见的流程控制结构诸如if,for,while,do … while等等,但是其特性和Java相比有所不同。在本文中将会一一介绍。 基本代码块 和Java相同,基本代码块是由{}包围的语句序列。和Java不同的地方在于,Scala的基本代码块是有值的,其值为最后一个语句的值(Scala中的语句都是有值的 […]
简介 上一章中其实也可以看到,Scala和Java类似,在类内直接定义的变量、方法即是成员变量和方法。但Scala中的构造方法和Java稍微有些不同。 成员 首先可以像Java那样直接定义成员:
1 2 3 4 5 |
class AClass { val a = 1 val b = 0.1 var v = 7l } |
也可以设置访问级别,默认是公有,没有public关键字(可以当变量名使用):
1 2 3 4 5 |
class BClass { private val a = 1 protected val b = 0.1 var public = 7l } |
简介 Scala是一种基于JVM的语言,但是兼顾了Java的面向对象特性和函数式编程。因为不像Java那样那么需要兼顾向后兼容性,Scala的活力比Java要高出许多,语言特性也丰富许多。更好的泛型、更方便的回调、更简单的集合操作。 因为函数式编程和以前的面向对象编程以及面向过程编程的思路都很有差异,一步登天是不可能的,所以我决定以Java为基石,从Scala的语法特性学起,以求从语法特性中获得语 […]
Java Swing的默认主题很丑,有时候我们想让它和Windows或者Linux主题一致,这样看起来和Windows或Linux的窗体一样。 要完成这件事其实很简单,只需要在主函数中加入如下代码即可:
1 2 3 4 5 |
try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } |
C语言提供了三种调用函数的方式:cdecl,stdcall和fastcall。cdecl是标准的C语言调用函数的方式(C declared);stdcall是大多数链接库中使用的调用方式,比如Windows API,JNI API等等;fastcall顾名思义,就是说它调用起来比较快。这三种方式在C语言编写中几乎没有任何差别,但对应了不同的底层实现。 要使用这三种调用函数的方法,需要在函数声明和定 […]