scala光速入門第一天

来源:http://www.cnblogs.com/qq852667211/archive/2016/01/02/5094544.html
-Advertisement-
Play Games

首先非常榮幸成為王家林老師3000門徒之一,以後此博客將會記錄學習王家林老師每節課程的筆記,作業。本人郵箱:[email protected]電話:15737606315下麵是第一天的學習筆記一:關於scala的產生背景,解決了什麼技術問題(內容大部分來自網路,我只寫一些個人總結,以後皆如此)scal...


首先非常榮幸成為王家林老師3000門徒之一,以後此博客將會記錄學習王家林老師每節課程的筆記,作業。 
本人郵箱:[email protected] 
電話:15737606315 
下麵是第一天的學習筆記 
一:關於scala的產生背景,解決了什麼技術問題(內容大部分來自網路,我只寫一些個人總結,以後皆如此) 
scala是新一代的jvm語言,是一門多範式編程語言,scala集成函數式編程和麵向對象編程的各種優勢,成為Java語言後又一有重大價值的編程語言,scala語言目前已經運用在各種領域,目前在大數據領域最火爆的spark框架就是用scala編寫的,由於scala集成面向對象與函數式編程的各種優勢,這令scala語言成為處理大數據上面的不二選擇,scala相容所有的Java程式,能夠調用 java 類庫 
二:scala基礎語法入門 
1:首先要先裝好虛擬機(我用ubuntu14.04),在虛擬機中安裝好jvm1.8,設置環境變數,安裝scala最新版,運行命令scala啟用解釋器 
2:scala讀取一求值一列印一迴圈 即REPL操作(這裡不方便插入圖片) 
3:用var和val定義變數,var定義值可以改變的變數,val定義值不可變的變數 
4:和java一樣有7種基本數據類型,scala的基本類型全部是類,可以有方法,例如可以“1.方法名”來調用一個基本數據類型的方法(不方便截圖) 
5:scala方法帶有兩個參數,一個隱式的和一個顯式 
6:scala算術運算符和Java基本一樣,出來一部分操作運算符可以當作方法用如:a.+(b),這裡的+號是方法 
三:控制結構與函數入門 
1:在scala中所有的表達式都有值,void類型在scala中用unit表示 
可以將if/else表達式的值賦值給變數如:val num=if (x > 0) 1 else -1將表達式if(x>0)的值賦給不可變變數num
2:在 Scala中,{}塊包含一系列表達式,其結果也是一個表達式。塊中最後一個表達式的值就是塊的值 
3:輸入輸出可以用print或println函數 
4:在scala中可以遍歷while for迴圈表達式的所有的值(不方便截圖),比java中要方便很多 
5:scala中方法和函數不是同一個定義,要定義函數,你需要給出函數的名稱、參數和函數體,必須指定所有參數類型(不方便截圖) 
四:Array、Map、Tuple實戰(參考王家林老師博客scala學習筆記) 
1:tuple 
元組,元組中可以由很多數據,讀取Tuple數據時使用._的方式讀取,並且索引從1開始。經常用Tuple接受函數的返回值。 
2:array 
數組使用圓括弧()讀取,索引從0開始,向左的箭頭符號<-是賦值的意思。第二種迴圈方式是增強for迴圈的寫法。 
Scala中的數組是以Java數組實現的。 
3:map 
只取key或只取value時,需要使用單下劃線_作為占位符,使用占位符後不能對其進行引用。 
五:spark案例解釋,讀源代碼,運用前面所學的知識,理解spark內核源碼,嘗試理解spark內核架構

課後作業(參考快學scala) 
移除一個數組中第一個負數後的所有負數 
最有效方法:把非負數值拷貝到前端 
收集需要保留的下標 
var first = true 
val indexes = for(i<-0 until a.length if first || a(i) >= 0) 
yield{ 
if (a(i) < 0) first = false; 

每次截斷數組長度 
for (j <- 0 until indexes.length) a(j) = a(indexes(j)) 
a.trimEnd(a.length - indexes.length)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • OpenGL視窗 能用於OpenGL的視窗庫有很多,常見的有glut、freeglut、SDL、GLFW等。glut基本已經被廢棄,其他幾個再不同場合都有不同的應用。 GLFW為opengl superbible 6th & 7th中推薦的第三方開源視窗庫。GLFW的特點大概總結如下: 跨平臺,能在...
  • 1.編譯含有splice()函數的程式時出現,'SPLICE_F_MOVE' undeclared,'SPLICE_F_NONBLOCK' ‘SPLICE_F_MORE' 也是一樣undeclared!2.使用man splice查看,發現要定義巨集_GNU_SOURCE1 #define _GNU_...
  • 環境:Centos 6.5介紹:PhantomJS 是一個基於 WebKit 的伺服器端 JavaScript API。它全面支持web而不需瀏覽器支持,其快速,原生支持各種Web標準: DOM 處理, CSS 選擇器, JSON, Canvas, 和 SVG。 PhantomJS 可以用於 頁面自...
  • 網路編程中的關鍵問題總結總結下網路編程中關鍵的細節問題,包含連接建立、連接斷開、消息到達、發送消息等等;連接建立包括服務端接受 (accept) 新連接和客戶端成功發起 (connect) 連接。 accept接受連接的問題在本文最後會聊到,這裡談談connect的關鍵點; 使用非阻塞連接建...
  • storm kafka的使用 1.storm kafka介紹 storm kafka是storm自帶的從kafka上獲取消息的kafka客戶端程式。 提供kafka和Trident的spout實現從kafka消費數據。 2.storm kafka的使用實例 maven的依賴配置文件,要註意st...
  • 臨時表,表變數,這2個兄弟在平時使用的時候並不會陌生。很多時候我們都借用這2兄弟來進行一下中間結果集的緩存之類的功能。那我就簡單說下這2兄弟在查詢時候的一些小區別1、首先我建立了一個表,存放100W的數據--數據簡單,但是每一行都飽滿~CREATE TABLE Tmp (ID INT PRIMARY...
  • 我們都知道CHAR(integer_expression)將ASCII代碼轉換為字元。當integer_expression介於 0 和 255 之間的整數。如果該整數表達式不在此範圍內,將返回 NULL 值。這些都是官方資料介紹的。具體參考https://msdn.microsoft.com/zh...
  • 聚合函數在統計阿~彙總阿,都灰常的常用。但是有一個小點是要註意一下下的create table #Tmp(a int ,b int )insert into #Tmp(a,b) values (1,null),(null,null),(null,3),(2,4)select * from #Tmpa...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...