【Scala 教程】Scala 基本语法与规则

原文首发于个人站点:【Scala 教程】Scala 基本语法与规则
公众号:【DreamHub】

Scala 的基础语法与 Java 类似,对于计算机专业学过 Java 的同学较为友好!对于 Python 开发者就怕写出 Pythonic Scala,还是需要简单记录一下。本文简单介绍下Scala中的基本语法和规则,后续再填充。

基本语法

Scala 基本语法需要注意以下几点:

  • 区分大小写
    Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。
  • 类名
    对于所有的类名的第一个字母要大写。如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。如:class MyFirstScalaClass
  • 方法名称
    所有的方法名称的第一个字母用小写。如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。如:def myMethodName()
  • 程序文件名
    程序文件的名称应该与对象名称完全匹配。保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。如: 假设HelloWorld是对象的名称,那么该文件应保存为HelloWorld.scala
  • def main(args: Array[String])
    Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。

数据类型

Scala 中所有数据类型都是对象,没有java中的原生类型。在scala是可以对数字等基础类型调用方法的。注意一下三种类型:

引用规则

Scala 使用 import 关键字引用包。

import java.awt.Color  // 引入Color
import java.awt._  // 引入包内所有成员
}

import语句可以出现在任何地方,而不是只能在文件顶部。

如果想要引入包中的几个成员,可以使用selector(选取器)

import java.awt.{Color, Font}
// 重命名成员
import java.util.{HashMap => JavaHashMap}
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏

变量

在 Scala 中,使用关键词 var 声明变量,使用关键词 val 声明常量(不能再次赋值)。

var VariableName : DataType [=  Initial Value]
val VariableName : DataType [=  Initial Value]

在 Scala 中声明变量和常量不一定要指明数据类型,在没有指明数据类型的情况下,其数据类型是通过变量或常量的初始值推断出来的。示例如下:

var myVar = 110;
val myVal = "Hello, Mengjia!";

val xmax, ymax = 110  // xmax, ymax都声明为110
val tuple = (110,"Mengjia") //元组声明 tuple: (Int, String) = (110,Mengjia)

字符串

String 类中你可以使用 printf() 方法来格式化字符串并输出,String format() 方法可以返回 String 对象而不是 PrintStream 对象。如:

object Test {
   def main(args: Array[String]) {
      var floatVar = 1.234
      var intVar = 1
      var stringVar = "Mengjia!"
      var fs = printf("浮点型变量为 " +
                   "%f, 整型变量为 %d, 字符串为 " +
                   " %s", floatVar, intVar, stringVar)
      println(fs)
   }
}

常用的 String 操作方法查看文档:java.lang.String

数组

Scala 数组声明的语法格式:

var z:Array[String] = new Array[String](3)
或
var z = new Array[String](3)

PS:数组访问:z(index),而不是[]

多维数组定义:

var myMatrix = ofDim[Int](3,3)

示例:

import Array._

object Test {
   def main(args: Array[String]) {
      var myMatrix = ofDim[Int](3,3)
      
      // 创建矩阵 index 用 range 函数
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            myMatrix(i)(j) = j;
         }
      }
      
      // 打印二维阵列
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            print(" " + myMatrix(i)(j));
         }
         println();
      }
    
   }
}

常见的数据操作方法:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值