Groovy学习总结

来源:互联网 发布:走淘宝的微商 编辑:程序博客网 时间:2024/06/06 09:51

前言

这里我想搞明白apk是如何构建的,包括ndk是如何编译的,可是呢面临的问题非常多,groovy语言的学习,ndk编译用的什么编译器,等等,这里还有个很大的黑盒—–gradle,这里我只能一步一步走,暂时来慢慢研究,估计目标很宏大,我想搞明白要很久时间。这里权当是个笔记,先研究groovy。

正文

这里有一个非常重要的特性,就是groovy支持脚本运行,也就是类似以下语句可以执行

pritln "hello groovy"

没有静态语言的的所谓的入口函数—-public static main(),这里说完了主要的区别之后,就说另一个很赞的重要特性—基本跟Java类似,甚至完全可以用Java替代,仅仅是提供了一些更赞的书写方法。其实本人不想多写这方面的东西,因为我这是班门弄斧,毕竟我才学习了不到一周时间,不过我还是稍微总结一下,总之这个玩意非常简单,如果使用这个编程的话。可以不用担心,了解的话只要了解几个特殊的属性就好了。

2.1 运算符号

貌似大概都与Java一样。除了

  1. == 这里在Java中是判断类的地址是不是一样,很令人费解对不,在groovy,可以抛去这个令人纠结的特性。那么如果指针相同貌似用方法is .
  2. ** 乘方运算,额又一个很赞的特性,不过貌似很鸡肋。
  3. / int 型除法得到的是float 型值
  4. 关于类中的变量的调用我这里不多说啦,只给大家一个demo,
class User {    public final String name                     User(String name) { this.name = name}    String getName() { "Name: $name" }       }def user = new User('Bob')assert user.name == 'Name: Bob'assert user.@name == 'Bob'
  1. groovy支持方法的指针,暂时不考虑实际功能。反正我不用(这里的markdown语法的错误我没辙了,大家忍受下)
  2. .. 范围操作符,这真是很赞很赞很赞的用法,demo:
def range = 0..5                                    assert (0..5).collect() == [0, 1, 2, 3, 4, 5]       assert (0..<5).collect() == [0, 1, 2, 3, 4]         assert (0..5) instanceof List                       assert (0..5).size() == 6

这里我就说下比较常用的一些用法,其他一些正则表达式或者其他的不太常用的用法我就不给大家一一列举了。如果有兴趣可以点击groovy操作符用法

2.2 编程基本思想

这里我还是说下与Java的不同,

  1. 关键字我不在多说,就说一个 def,这是脚本语言最赞的一个语法。也就是不用生命类型的类型,
  2. 关于字符的引用我这里就举个例子
def number = 1 def eagerGString = "value == ${number}"def lazyGString = "value == ${ -> number }"assert eagerGString == "value == 1" assert lazyGString ==  "value == 1" number = 2 assert eagerGString == "value == 1" assert lazyGString ==  "value == 2"

这个特性不重要,仅仅记住就好了。
3. 这里我就不再详细介绍其他特性比如内部类或者其他。其实感觉都差不多。毕竟我们不是用groovy编程,我们仅仅是可以读懂就好了。这里不再详述。有兴趣的童鞋可以进入这个网站学习groovy学习官网

2.3 常用特性

这里主要介绍下我们编写一个常用软件的主要使用的东西,其实感觉应该在前两个之后,不过呢,大家可以凑合着阅读吧。

  1. 一切都是默认都是public,其实我们知道我们如果写应用(处理些框架)基本对于类的权限没啥意义,并且这种基本算是脚本语言,更是没必要啦
  2. 关于循环遍历:
new File('/path/to/file').withReader('UTF-8') { reader ->   reader.eachLine {       println it   }}

后记

这篇博文写的比较纠结,可是却是要想讲解一门语言完全透彻比较麻烦,并且我也不需要完全搞懂,如果大家想要完全搞懂的话感觉最好的是上面我给出的链接,如果想大概了解感觉我写的不好我给出大家两个教程

  1. 从零到1.
  2. 从0.5到1.5

如有其它疑问大家共同探讨。

1 0
原创粉丝点击