1. 程式人生 > >scala學習-基本語法3

scala學習-基本語法3

上接scala學習計算開始基本語法2
接上一篇的一點尾巴
第九步:讀取檔案操作
讀取檔案中的每行,讀取檔案,然後每行打印出來,使用相對路徑,data目錄裡放在工程裡。

import scala.io.Source
val file = Source.fromFile("data/data_test.txt")
    for(f<-file.getLines()){
      println(f)     
    }

Scala中,引入包的方式和java一樣,都是使用import,但是要引入所有的包的時候,使用的是_,不是*。
下面進入今天的重點
類和物件 (一)
Scala支援函數語言程式設計,而且也是一種純面向物件的程式設計方式。現在介紹下類和物件。介紹類的定義,這裡使用了引路蜂的列子,定義一個計算整數累加器校驗和。

class CheckSumAccumulator {
  private var sum=0;
  def add(b:Byte):Unit  = sum += b
  def checkSum():Int = ~(sum&0xff)+1
  //錯誤
  /*def add2(b:Byte):Unit={
    b=b+2

  }*/

定義類和java是類似的,也是以class開始,但是不一樣的是,沒有顯示給出限定符,Scala預設是Public。類中的定義方法使用的def,而且方法中的引數預設是val型別的,所以在方法中如果要修改引數的值,編譯不會通過,會報錯reassignment to val。
類的方法有2種,一種是有返回值的,一種是沒有返回值的,沒有返回值的方法,使用的是函式的副作用,讀寫成員變數的值或者是讀寫檔案什麼的。這種沒有返回值的函式的返回型別為Unit,類似java中的void,對於這中方法可以省略等號,如果希望返回一個值,必須加上返回型別,沒加的話,預設為Unit哦。add方法也可以這樣定義` def add2(b:Byte)=sum+b’
一行中如果要寫幾條語句,可以使用;分割,但是不建議。
返回值的時候不需要return,預設方法的最後一條語句的結果就是返回值。

相關推薦

scala學習-基本語法3

上接scala學習計算開始基本語法2 接上一篇的一點尾巴 第九步:讀取檔案操作 讀取檔案中的每行,讀取檔案,然後每行打印出來,使用相對路徑,data目錄裡放在工程裡。 import scala.io.Source val file = Source.fr

scala學習-基本語法4

類和物件2: 前面提到,Scala是面向物件的程式設計,且Scala不允許保護靜態元素-靜態方法和靜態變數。意思是社麼呢,就是我雖然使用Private 定義了變數,在外面我還是可以訪問。 package org.wq.learn object Check

js --基本語法3 函式,陣列,堆疊

1. 函式 1. 函式就是待執行的程式碼段 2. 使用 : 函式的宣告 函式的呼叫 3. 語法 : function 函式名(引數列表){ 函式體; return 返回值; } 解釋 : 1. JS中使用function關鍵字宣告函式 2. 函式名自定義,命名規範參考變數的命名規範 3. 引數表示函式體執行所

vue學習-基本語法

vue的語法同angularjs類似,指令由angularjs的ng 變成了vue的v. 1.一個例子 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title

Scala學習筆記(3)—— Scala面向物件

1 面向物件特點 封裝:屬性、方法封裝到類中; 繼承 多型:父類引用指向子類物件,開發框架的基石 package com.scalatest.scala.oop object SimpleObjectApp { def main(args: A

myslq基本語法(3)

啟動 表示 管理 ges acid 處理 min 沒有權限 密碼 一.多表連接當需要的查詢的數據不是來自一張表,二十來自多張表時,就需要用到多表連接查詢select t1.*,t2.teacher from it_student t1, it_subject t2 wher

scala基本語法學習之一

scala與java有許多相似地方,scala是面向物件與面向過程程式設計的統一體,java在jdk8之前都是面向物件程式設計。因此scala具有面向物件程式設計的特點,即封裝、繼承和多型,又有面向過程的特點,使得scala語言更加靈活多變,掌握起來有一定的難度。scala編

scala學習(2)-基本語法--for迴圈和if語句

上一篇部落格我對scala做了最基本的講述吧,主要是我就知道那麼多,哈哈,好啦,今天我們看看在任何語言中我們用的最多的兩種語句吧。一猜就中,for和if語句。 當然開始之前我們還是說一下在scala中的變數的定義怎麼來。 變數 在scala中如果要定義

scala學習計算開始基本語法2

上接scala學習開始基本語法1 第五步:陣列的使用 在scala中,可以使用new來例項化物件,當你建立一個數組物件的時候,你可以使用數值或者是型別引數。但是在scala中,是使用[]來指明物件,java是使用<>。如下程式碼 package

XML學習3:XML基本語法(二)

       三XML屬性        XML元素可以在開始標籤中包含屬性,類似HTML。屬性(Attribute)提供關於元素的額外(附加)資訊。        XML屬性基本語法:<元素

Swift基礎學習(一)基本語法

postfix 合數 語言特性 初學者 表達式 public 能夠 dict 命名   Swift 簡介(贊美一番,收集了多篇 關於Swift 學習教程的語言簡介一直以為英語和漢語混寫的時候只是英語字母結尾的地方打空格,原來是英語字母的開頭和結尾都要加一個空格,英語字母

花了兩天時間學習了 sass, less, stylus的基本語法和簡單使用, 談談感受.

列表 stylus 單點 blank 明顯 一點 css 自動編譯 數據 花了兩天時間學習了 sass, less, stylus的基本語法和簡單使用, 談談感受. 1. 變量的問題 1.1變量的表示 sass有個$var, [email protected]/

C語言學習系列(四)C語言基本語法和數據類型

.html 二進制 占用 efault html pac 精度 es2017 %d 一、基本語法 C的令牌(Tokens)   C 程序由各種令牌組成,令牌可以是關鍵字、標識符、常量、字符串值,或者是一個符號。 關鍵字(保留字) auto else long swit

C語言學習系列(六)基本語法

xor 12px 左移 程序 str 繼續 p s type false 一、C運算符 算術運算符(語法和java類似或基本一樣略過不再描述) 關系運算符(略) 邏輯運算符(略) 位運算符 運算符描述實例 & 如果同時存在於兩個操作數中,二

ELK 學習筆記之 Logstash基本語法

技術 logs erl 定義 -s images cnblogs img ron Logstash基本語法: 處理輸入的input 處理過濾的filter 處理輸出的output 區域 數據類型 條件判斷 字段引用 區域: Logstash中,是用{}

Scala學習筆記:重要語法特性

返回值 contains curried 路徑名 重復 continue 路徑 冒號 語句 1.變量聲明 Scala 有兩種變量, val 和 var val的值聲明後不可變,var可變val msg: String = "Hello yet again, world!"

python基本語法1.3

exce pre ted cnblogs 基本 python logs ner exp # -*- coding: utf-8 -*-#或者寫成下面這種形式 # coding: utf-8 #註意空格的對齊try: x = 100 y = 200 exc

前端學習入門-angular2-Typescript基本語法(二)

moved subst 一個 super clas color 模式 值類型 tin   接口   接口的創建 interface labelValue{ label:string; }   //創建函數對接口進行調用 labelObj是

前端學習入門-angular2-Typescript基本語法(一)

十分 有用 angular2 聲明 else 存在 turn 只知道 his   基礎類型   布爾值   最基本的數據類型就是簡單的true/false值,在JavaScript和TypeScript裏叫做boolean(其它語言中也一樣)。 let isDon

scala基本語法和單詞統計

引用 包裝類 tab 組成 oop imp 2個 err 方法調用 scala 基本語法 1.聲明變量 (1)val i = 1 使用val聲明的變量值是不可變的,相當於java裏final修飾的變量,推薦使用。(2)var i = "hello" 使用var聲明的變量值是