IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> sublime scalajavapython配置 -> 正文阅读

[Python知识库]sublime scalajavapython配置

运行ctrl+b

scala

安装

版本:
https://scala-lang.org/download/all.html
2.11.12

下载地址:https://scala-lang.org/download/2.11.12.html

安装:https://blog.csdn.net/superman_xxx/article/details/51535110
环境变量 SCALA_HOME,PATH,

配置文件

{
    "cmd": ["scala", "$file"],
    "windows":{
        "cmd": ["scala.bat", "$file"]
    }
}

scala简单介绍

一门面向对象编程和函数式编程的混合语言。
是一门基于JVM的语言,scala编译器将scala应用程序编译成java字节码,字节码运行在JVM中。Scala基于JVM,与java可以无缝互操作。

用scalac编译,scala执行。

函数式编程

函数是代码基本构成原始,避免使用命令式编程中的可变变量和循环等控制结构,函数是一等公民(拥有和变量,值一样的地位,允许把函数当成参数传递给另一个函数,也可以当成返回值返回,函数可以随意组合,无副作用,简单)。
优点:提高生产效率,容易编写多兵法多线程应用,写出robust代码(避免常见编程错误)

基础类型

Byte
Short
Int
Long
Float
Double
Char
Unicode
String
Boolean
scala没有基本类型,每个基础类型都是一个类。编译器自动吧Scala基础类型转换为Java基本类型

变量

可变变量 var(尽量不要使用可变变量)
不可变变量 val
编译器便利:作为分号结尾可选,会进行类型推断。

函数

  • 方法
  • 局部函数
  • 高阶方法(把函数作为输入参数的方法)
  • 函数字变量(匿名函数)
    处在圆括号的输入函数列表、右箭头和函数体构成
(x:Int)=>{x+100}
  • 闭包 使用了非参数非局部变量的函数字变量

类:一种将数据和操作结合在一起的代码组织形式,用属性和行为表示一个实体。由字段和方法组成,字段是变量存储数据,方法是可执行的代码就是函数,可以访问字段。

scala使用关键字class定义类。类的定义以类名开头,参数列表(都好作为分隔符),
处于大括号的字段和方法
类实例用关键词new创建

class Car(mk:String,ml:String,cr:String){
	val make = mk
	val model = ml
	var color = cr
	println(mk,ml,color)
	def repaint(newColor:String) = {
		color = newColor
		println(mk,ml,color)
	}
	
}
val nustang = new Car("Ford","Mustang","Red")
nustang.repaint("White")

单例

只实例化一次的类
使用Object关键字定义单例对象

object ScalaHelloWorld{
  // def定义函数 。函数定义以函数名开头,然后是圆括号中包含的参数列表,参数名:类型,
  //参数列表以逗号作为分隔符,然后是冒号、函数返回值类型、等号、函数体
  def add(firstInput:Int,secondInput:Int):Int ={
  	val sum = firstInput + secondInput
  	return sum
  }
  // 简化版函数返回值就是函数体中最后一个语句作为表达式所返回的值

  def add_simple(firstInput:Int,secondInput:Int) = firstInput + secondInput
  
  def main(args:Array[String]): Unit={
      println("ScalaHelloWorld !!!",add_simple(1,2))
  }
}

样本类

使用case修饰符的类

case class Message(from:String,to:Stirng,content:String)

样本类会添加与类名一致的工厂方法,所以不用使用new关键字就可以创建一个样本类的类实例。

val request = Message("","","")

参数列表中所有参数隐式获得val前缀,scala为样本类添加方法toStirng,hashCode,equals,copy。
在创建不可变对象时很有用,还支持模式匹配

模式匹配

类似其他语言的switch语句(但不需要由break),但是更强大。
简单用法式替代if-else语句,

使用match关键字替代switch,可能的选项前面跟着关键字case,如果选相匹配,则该选项右箭头右边代码将执行,下划线表示默认选型,前面都不匹配时执行。

模式匹配语句本身就是一个返回一个值的表达式

def colorToNumber(color:String):Int={
	val num = color match{
		case "Red"=>1
		case "Blue"=>2
		case _ => 0
		}
	num
}

操作符

Scala没有内置的操作符,每个基础类型都是一个类,每个操作符都是一个方法。

val x = 10
val y = 5
val z + x+y

等价

val z = x.+(y)

特质

类继承关系中的接口。
一个接口可以定义多个方法,类似java中的接口,但是可以有方法的实现,还可以有字段,继承类可以服用字段和特质中实现的方法,特质看上去像抽象类,但是一个类只能继承一个抽象类,但是可以继承多个特质

trait Shape{
	def area():Int
}
class Square(length:Int)extends Shape{
	def area = length * length
}
class Rectangle(length:Int,width:Int)extends Shape{
	def area = length * width
}
val square = new Square(10)
val area = square.area
println(area)

元组

一个不可变容器

val twoElements =("10",true)

使用场景:把一些不相关的元素聚合在一起。所有元素是同一类型时可以使用集合,如数组或者列表,但是元素时不同类型时但是有联系可以使用类,当成类字段储存,但是一些场景下可以用元组替换类,比如想有一个有多个返回值的函数
访问元组的方法

val first = twoElements._1

option类型

一种数据类型,表示值时可以选的,要么有值要么无值,Some类的实例可以存储任何类型的数据,用来表示有值,None对象表示无值。

有助于避免控制整异常

 def colorCode(color:String):Option[Int]= {
 	color match{
 		case "red"=>Some(1)
 		case _ =>None
 	}
 }
 val code = colorCode("orange")
 code match {
 	case Some(c) => println("code for orange is:"+c)
 	case None => println("code not defined for orange")
 }

集合

序列 集合 map
序列:
有先后次序的元素集合,可以根据位置访问元素
数组:
有索引的元素序列,所有元素类型相同,时可变数据结构,可以修改数组中的元素,但不能创建后增加元素。
索引从0开始。

var arr = Array(10,20,30,40)
arr(0) = 50
val first = arr(0)

列表
先行元素序列,存放相同类型元素,递归结构,数组时扁平数据结构,列表不可变,创建后不可修改。
访问时间和元素在列表位置成正比

创建列表方式

val sx = List(10,20,30,40)
val ys = (1,100).toList
val zs = someArray.toList

向量
根据索引访问元素占固定时间,支持快速修改和访问任意位置元素

val v1 = Vector(0,10,20)
val v2 = v1 :+50
val v3 = v1(1)

集合

val fruites = Set("","")

支持contains,isEmpty操作
map
字典/hash map,键值对集合,根据键查找值

val capital = Mao("USA"->"Washington D.C.")
val USACapital = capital("")

高阶方法
map flatmap filter freach reduce

完整程序

一个单独的scala应用程序需要一个main方法的单例对象,以一个Array[Sting]类型的参数作为输入,并不返回任何之,时scala应用程序的入库,单例可以起名字

object ScalaHelloWorld{
  // def定义函数 。函数定义以函数名开头,然后是圆括号中包含的参数列表,参数名:类型,
  //参数列表以逗号作为分隔符,然后是冒号、函数返回值类型、等号、函数体
  def add(firstInput:Int,secondInput:Int):Int ={
  	val sum = firstInput + secondInput
  	return sum
  }
  // 简化版函数返回值就是函数体中最后一个语句作为表达式所返回的值

  def add_simple(firstInput:Int,secondInput:Int) = firstInput + secondInput
  
  def main(args:Array[String]): Unit={
      println("ScalaHelloWorld !!!",add_simple(1,2))
  }
}

java


{
    "cmd": ["scala", "$file"],
    "windows":{
        "cmd": ["scala.bat", "$file"]
    }
}

python

{
	"cmd": ["D:/Python/python37/python.exe","-u","$file"],
	"file_regex":"^[ ]*File \"(...*?)\", line ([0-9]*)",
	"selector":"source.python",
}

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:06:24  更:2022-03-17 22:06:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:58:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码