Scala学习笔记一

以下笔记只是对Scala的语法和使用做简单记录


1、在线Scala编译器Scalakata.com,也可自行安装IDE开发工具并配置开发环境


2、Scala 定义了两种类型的变量 val 和 var ,val 类似于Java中的final 变量,一旦初始化之后,不可以重新赋值(我们可以称它为常变量)。而var 类似于一般的非final变量。可以任意重新赋值。


3、函数:Scala既是面向对象的编程语言,也是面向函数的编程语言。

Scala函数以def定义,然后是函数的名称(如max),然后是以逗号分隔的参数。Scala中变量类型是放在参数和变量的后面,以“:”隔开。这种做的一个好处是便与”type inference”。同样如果函数需要返回值,它的类型也是定义在参数的后面(实际上每个Scala函数都有返回值,只是有些返回值类型为Unit,类似为void类型)。
此外每个Scala表达式都有返回结果(这一点和Java,C#等语言不同),比如Scala的 if else 语句也是有返回值的,因此函数返回结果无需使用return语句。实际上在Scala代码应当尽量避免使用return语句。函数的最后一个表达式的值就可以作为函数的结果作为返回值

demo 函数:

 def max(x:Int, y:Int):Int= {
    if(x>y) x
    else y
  }


4、Scala不支持 ++i,i++ 运算符,因此需要使用i+=1 来加一


5、Scala访问数组的语法是使用()而非[]

var i=0
  var args = new Array[String](3)
  args(0) = "I"
  args(1) = "like"
  args(2) = "the World"
  while(i<args.length) {
    println(args(i))
    i+=1;
  }
 println(max(1,2))

  def max(x:Int, y:Int):Int= {
    if(x>y) x
    else y
  }


6、使用 foreach和 for 来实现迭代

1)args.foreach(arg => println(arg))


2)args.foreach( println)


3)for (arg <-args)

println(arg)


以上内容基于http://blog.youkuaiyun.com/mapdigit/article/details/21878083整理笔记

六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,详细介绍了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程的理论与Matlab代码实现过程。文档还涵盖了PINN物理信息神经网络在微分方程求解、主动噪声控制、天线分析、电动汽车调度、储能优化等多个工程与科研领域的应用案例,并提供了丰富的Matlab/Simulink仿真资源和技术支持方向,体现了其在多学科交叉仿真与优化中的综合性价值。; 适合人群:具备定Matlab编程基础,从事机器人控制、自动化、智能制造、电力系统或相关工程领域研究的科研人员、研究生及工程师。; 使用场景及目标:①掌握六自由度机械臂的运动学与动力学建模方法;②学习人工神经网络在复杂非线性系统控制中的应用;③借助Matlab实现动力学方程推导与仿真验证;④拓展至路径规划、优化调度、信号处理等相关课题的研究与复现。; 阅读建议:建议按目录顺序系统学习,重点关注机械臂建模与神经网络控制部分的代码实现,结合提供的网盘资源进行实践操作,并参考文中列举的优化算法与仿真方法拓展自身研究思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值