Scala编译原理

1 package com.atguigu.chapter01;
2 /**
3 *
4 */
5 //main 方法名
6 //小括号表示参数列表
7 // 参数声明方式: java -> 类型 参数名
8 // scala -> 参数名 : 类型
9 // public修饰符: scala中没有public关键字,如果不声明访问权限,那么就是公共的
10 // static修饰符: scala中没有静态方法,所以没有static关键字
11 // void关键字: 表示返回值,但是不遵守面向对象语法,所以scala中没有,但是又Unit类型,表示没有返回值
12 // scala中: 方法名(参数列表):返回值类型
13 // scala中方法必须采用关键字def声明
14 // scala中方法实现赋值给方法声明,所以中间需要等号连接
15
16 // scala是一个完全面向对象的语言,所以没有静态语法,为了能调用静态语法(模仿静态语法)
17 // 采用伴生对象单例的方式调用方法
18
19
20 /*
21 * Scala 完全面向对象,故scala去掉了Java中非面向对象的元素,如static关键字,void类型
22 * 1) static
23 * scala无static关键字,由object实现类似静态方法的功能(类名.方法名)
24 * class关键字和Java中的class关键字作用相同,用来定义一个类
25 * 2) void
26 * 对于无返回值的函数,scala定义其返回值类型为Unit类型
27 *
28 * */
29 package com.atguigu.chapter1
30 object Hello {
31 def main(args: Array[String]): Unit = { //Unit 相当于空 void
32 println("Hello Scala!")
33 System.out.println("Hello Scala!")
34 }
35 }
36 /*
37 1.object:关键字,声明一个单例对象(伴生对象)
38 2.def 方法名称(参数名称:参数类型):返回值类型 = { }
39 */
Scala编译原理的更多相关文章
- 编译原理-词法分析05-正则表达式到DFA-01
编译原理-词法分析05-正则表达式到DFA 要经历 正则表达式 --> NFA --> DFA 的过程. 0. 术语 Thompson构造Thompson Construction 利用ε ...
- 跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析
文章中引用的代码均来自https://github.com/vczh/tinymoe. 看了前面的三篇文章,大家应该基本对Tinymoe的代码有一个初步的感觉了.在正确分析"print ...
- 跟vczh看实例学编译原理——二:实现Tinymoe的词法分析
文章中引用的代码均来自https://github.com/vczh/tinymoe. 实现Tinymoe的第一步自然是一个词法分析器.词法分析其所作的事情很简单,就是把一份代码分割成若干个tok ...
- 跟vczh看实例学编译原理——一:Tinymoe的设计哲学
自从<序>胡扯了快一个月之后,终于迎来了正片.之所以系列文章叫<看实例学编译原理>,是因为整个系列会通过带大家一步一步实现Tinymoe的过程,来介绍编译原理的一些知识点. 但 ...
- 跟vczh看实例学编译原理——零:序言
在<如何设计一门语言>里面,我讲了一些语言方面的东西,还有痛快的喷了一些XX粉什么的.不过单纯讲这个也是很无聊的,所以我开了这个<跟vczh看实例学编译原理>系列,意在科普一些 ...
- 编译原理-词法分析04-NFA & 代码实现
编译原理-词法分析04-NFA & 代码实现 0.术语 NFA 非确定性有穷自动机nondeterministic finite automation. ε-转换ε-transition 是无 ...
- .NET程序的简单编译原理
1.不管是什么程序,最终的执行官是CPU,而CPU只认识1和0的机器码. 2.我们现在写的一般是高级语言写的程序.CPU是不认识我们用高级语言写的源代码的,那应该怎么办才能让CPU执行我们写好的程序尼 ...
- Atitit.编译原理与概论
Atitit.编译原理与概论 编译原理 词法分析 Ast构建,语法分析 语意分析 6 数据结构 1. ▪ 记号 2. ▪ 语法树 3. ▪ 符号表 4. ▪ 常数表 5. ▪ 中间代码 1. ▪ 临 ...
- 编译原理简单语法分析器(first,follow,分析表)源码下载
编译原理(简单语法分析器下载) http://files.cnblogs.com/files/hujunzheng/%E5%8A%A0%E5%85%A5%E5%90%8C%E6%AD%A5%E7%AC ...
- 编译原理(简单自动词法分析器LEX)
编译原理(简单自动词法分析器LEX)源程序下载地址: http://files.cnblogs.com/files/hujunzheng/%E6%B1%87%E7%BC%96%E5%8E%9F%E7 ...
随机推荐
- ckeditor使用技巧总结
介绍 官方开发者文档:CKEditor 4 documentation 技巧总结 1.挑选需要的插件,打包下载 参考:CKEditor 4.4.1 添加代码高亮显示插件功能--使用官方推荐Code S ...
- jsp中无法识别EL表达式问题
今天在开发系统时需要在JSP中遍历List<javabean>,其中用到了EL表达式:${item.value} 页面死活不出数据,只显示表达式本身:${item.value}. 页面代码 ...
- CDN 加速原理
=> CDN 加速原理 HTTP 请求流程说明: 用户在浏览器输入要访问的网站域名,向本地 DNS 发起域名解析请求. 域名解析的请求被发往网站授权 DNS 服务器. 网站 DNS 服务器解析发 ...
- win32 - 控制台聊天
仅适用于同一台电脑的两个进程聊天,对于不同电脑之前的聊天需要依靠tcp/ip协议. 两个进程是通过发送WM_COPYDATA 消息来传输字节的. 代码如下: Server.cpp #include & ...
- 【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name
问题描述 Azure Web Job执行Powershell脚本报错 Select-AzContext : The term 'Select-AzContext' is not recognized ...
- 【Azure 应用服务】App Service 通过门户配置数据库连接字符串不生效
应用设置 Application Setting 在应用服务中,应用设置是作为环境变量传递给应用程序代码的变量. 对于 Linux 应用和自定义容器,应用服务使用 --env 标志将应用设置传递到容器 ...
- C++ //vector 容器构造 vector赋值操作 vector 容量大小 vector插入和删除 //vector数据存取 vector互换容器 vector预留空间
1 //vector 容器构造 vector赋值操作 vector 容量大小 vector插入和删除 2 //vector数据存取 vector互换容器 vector预留空间 3 #include&l ...
- Python中那些简单又好用的特性和用法
Python作为我的主力语言帮助我开发了许多DevOps运维自动化系统,这篇文章总结几个我在编写Python代码过程中用到的几个简单又好用的特性和用法,这些特性和用法可以帮助我们更高效地编写Pytho ...
- SSK:超级键盘模拟器,调用底层,可模拟所有按键
SSK - 吵架键盘模拟器 SuperSimulator of Keyboard 调用系统底层,能够模拟所有键盘操作! 本程序结合快Key(QuicKeys智能登录助手)一起使用,能够创造更多奇迹! ...
- Zabbix“专家坐诊”第186期问答汇总
问题一 Q:这两个键值vm.memory.size[pused]和vm.memory.util监控内存使用率有什么区别,使用那个监控使用率更好,支持windows系统和Linux系统么,对agent端 ...