scala中常用特殊符号示例代码

  • 时间:
  • 3369人关注

这篇文章主要介绍了scala中常用特殊符号详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧,另外这篇文章主要知识点是关于scala、特殊符号、Java的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:Java
  • 编辑整理:庾乐语
  • 教程字数:2012字节
  • 阅读时间:大概5分钟
  • 下载本教程(DOC版)
  • Scala语言规范
  • Scala谜题
  • Spark编程基础:Scala版
  • Scala学习手册
  • Scala编程实战
  • =>(匿名函数) 

    => 匿名函数,在Spark中函数也是一个对象可以赋值给一个变量。

    Spark的匿名函数定义格式:

    (形参列表) => {函数体}

    所以,=>的作用就是创建一个匿名函数实例。

    比如:(x:Int) => x +1 ,就等同于下面的Java方法:

    public int function(int x) {
     return x+1;
    }
    

    示例:

    class Symbol {
     var add = (x: Int) => x + 1
    }
    
    object test2 {
     def main (args: Array[String] ): Unit = {
     var symbol = new Symbol
     printf(""+ symbol.add.toString())
     }
    }
    
    

    <- (集合遍历)

    循环遍历,示例如下:

    var list = Array(1,2,3,4)
    for (aa <- list) {
     printf(aa+" ")
    }
    

    上面代码类似于Java的代码:

    int[] list = {1,2,3,4};
    for(int aa : list) {
     System.out.print(aa+" ");
    }
    

    ++=(字符串拼接)

    var s:String = "a"
    s+="b"
    println(s)
    s++="c"
    println(s)
    

    :::三个冒号运算符与::两个冒号运算符

    :::三个冒号运算符表示List的连接操作。(类似于Java中的 list1.addAll(list2))
     ::两个冒号运算符表示普通元素与list的连接操作。(类似于Java中的list1.add(A)操作)

    scala操作示例:

    val one = List(1,2,3)
    val two = List(4,5,6)
    val three = one ::: two
    println(three.toString())
    
    val four = 7 :: three
    
    println(four.toString())
    
    

    -> 构造元组和_N访问元组第N个元素

    1.scala中元组含义:

    • 元组是不同类型的值聚集线程的列表
    • 通过将多个值使用小括号括起来,即表示元组

    2.scala中元组与数组区别:数组中元素 数据类型必须一样,但是元组数据类型可以不同。

    示例程序:

    val first = (1,2,3) // 定义三元元组
    
    val one = 1
    val two = 2
    val three = one -> two
    
    println(three) // 构造二元元组
    
    println(three._2) // 访问二元元组中第二个值
    
    

    _(下划线)的用法

    通配符

    _可以起到类似于*作用的通配符:

    import org.apache.spark.SparkContext._

    指代集合中的每一个元素

    例如 遍历集合筛选列表中大于某个值的元素。

    val lst = List(1,2,3,4,5)
    val lstFilter = lst.filter(_ > 3)
    

    获取元组中指定下标的元素值

    val ss = (1,"22","333")
    println(ss._1)
    

    使用模式匹配可以用来获取元组的组员

    val m = Map(1 -> 2,2 -> 4)
    for ((k,_) <- m) println(k) //如果不需要所有部件, 则在不需要的部件使用_; 本例只取key,因此在value处用_
    

    成员变量而非局部变量添加默认值

    var s:Int=_
    def main(args: Array[String]): Unit = {
     println(s)
    }
    

    :_* 作为一个整体,告诉编译器你希望将某个参数当做数序列处理

    def main(args: Array[String]): Unit = {
     val s = sum(1 to 5:_*)  //把1 to 5当作一个序列处理
     println(s)
    }
    
    def sum(args: Int*) : Int = {
     var result = 0 ;
     for(s2 <- args) {
      result += s2 ;
     }
     result ;
    }
    
    

    +=

    为可变数组添加元素

    val arrBuf1 = new ArrayBuffer[Int]()
    arrBuf1+= 11 // 添加一个元素
    
    println(arrBuf1)
    
    

    -=

    从map后者可变数组中移除相应的值

    val arrBuf1 = new ArrayBuffer[Int]()
    arrBuf1+= 11 // 添加一个元素
    arrBuf1+= 12 // 添加一个元素
    arrBuf1-= 12 // 删除一个元素
    
    println(arrBuf1)
    
    var map = Map(1 -> 1,2 -> 2,3 ->3 )
    map-=1
    println(map)
    
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


    上一篇:【java 多线程】守护线程与非守护线程示例效果

    下一篇:学习Spring boot项目redisTemplate实现轻量级消息队列

    相关内容

    • Scala操作Redis用连接池工具类RedisUtil详解

      这篇文章主要介绍了Scala 操作Redis使用连接池工具类RedisUtil,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

      08-07Scala操作Redis使用连接池工具类RedisUtil

      阅读更多
    • scala操作数据库的方法实例

      这篇文章主要介绍了scala 操作数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

      07-06scala操作数据库的方法总结

      阅读更多
    • scala文件操作和网络请求的实操方法

      这篇文章主要介绍了scala当中的文件操作和网络请求的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学

      11-09scala当中的文件操作和网络请求的实现方法

      阅读更多
    • Scala求和的实例分享

      这篇文章主要介绍了Scala求和示例代码,需要的朋友可以参考下

      02-15Scala求和示例代码

      阅读更多
    • Java从小白到大牛(含源码)

      Java从小白到大牛(含源码)

      Java从小白到大牛是一本Java语言学习教程,读者群是零基础小白,通过本书的学习能够成为Java大牛。主要内容包括:Java语法基础、数据类型、运算符、控制语句、数组、字符串、面向对象基础、继承与多态、抽象类与接口、集合框架、异常处理、输入输出和网络编程等技术。

      大小:15.6 MBJava

      点击下载
    • Three.js开发指南:WebGL的JavaScript 3D库

      Three.js开发指南:WebGL的JavaScript 3D库

      大小:180.1 MBThree.js

      点击下载
    • 完美图解物联网IoT实操:ESP8266 Arduino,Cordova物联网移动App,JavaScript微控制器编程

      完美图解物联网IoT实操:ESP8266 Arduino,Cordova物联网移动App,JavaScript微控制器编程

      完美图解物联网技术系列》图书是当前物联网开发技术应用的集大成者。本书内容以Arduino和JavaScript为主线,开发物联网应用、手机App和操控微电脑

      大小:60.8 MB物联网

      点击下载
    • Java 8基础应用与开发

      Java 8基础应用与开发

      《 Java8基础应用与开发 》包含Java8特点,知识结构图从入门到精通逐层加强,Q-DMS数据挖掘项目围绕本书,重视內容和实践活动,说道关键点和方式。结合实际成才全书的特性: 基础理论基础

      大小:188 MBJava8

      点击下载
    • Java并发编程的艺术

      Java并发编程的艺术

      大小:148 MBJava编程

      点击下载
    • 自己动手写Java虚拟机

      自己动手写Java虚拟机

      Java虚拟机非常复杂,要想真正理解它的工作原理,最好的方式就是自己动手编写一个! 本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟

      大小:4.27 MBJava

      点击下载
    • 深度解析Java游戏服务器开发

      深度解析Java游戏服务器开发

      以便协助想掌握新手入门服务器开发设计的从业者或式从业者快速把握Java服务器开发设计的技术性,这书从手机游戏的行业现状、Java技术性、手机游戏逻辑性、数据库系统、网络理论、服务器

      大小:314.4 MBJava开发

      点击下载

    学习笔记