• 【Groovy】 Groovy笔记


    一.简单了解Groovy

      Groovy简介

        Groovy是基于JVM的敏捷开发语言,语法与Java类似,但更加简洁,容错性也比Java强,同时Java能非常好的契合(例如Groovy能够使用Java的所有类库)

      特性

        1.语法上支持动态类型,闭包等新一代语言特性

        2.既支持面向对象编程,也支持面向过程编程

        3.既可以作为编程语言,也可以作为脚本语言

        更多特性可以查看官方文档

      搭建Groovy开发环境(Windows)

        1.下载Groovy的sdk,推荐官方链接 https://groovy.apache.org/download.html

        2.配置环境变量,与JDK类似,例如本人配置如下

          新建

            

          在Path中添加

            

         3.验证,在cmd中输入groovy -v即可看到自己groovy版本,如下图所示

          

        4.开发工具中使用Groovy进行开发

          例如IDEA,在较新的版本中默认装了Groovy插件,较老的版本手动下载相关的plugins。

          配置完毕后就可以使用IDEA开发Groovy项目

    二.Groovy核心语法

      1.Groovy中定义数据类型

      Groovy中没有基本数据类型,数据类型的定义方式有强类型定义和弱类型定义两种方式。

        强类型定义方式:和Java一样,但是会自动转换成相应的包装类。

        弱类型定义方式: 通过def定义变量,它会自动选择数据类型,例如:

          def定义变量或方法

          

          输出结果如下

          

      2.Groovy中的字符串类型详解

        Groovy中除了String类型,还新增了一个GString类型,它们都是字符串类型,它们之间通常可以相互转换

        String类型定义方式:String类是在java中的lang包中,在Groovy中可以用单引号,双引号或三个单引号等方式来定义

            注意:1. 单引号和双引号方式如果要换行,必须在代码中添加换行符,而三引号直接回车即可

               2. 双引号的字符串中如果引入扩展表达式,那么这个类将会变成groovy中的GStringImpl类,而单引号或三个单引号则无法解析,所以开发中大多使用双引号

    //案例
    def str1 = 'hello world'
    def str2 = '''hello
    world'''
    def str3 = "hello world"
    println str2
    def str4 = '${str1} ,你好世界'
    def str5 = "${str1} ,你好世界"
    println(str4)
    println(str5)
    println(str4.class)
    println(str5.class)

          输出如下:

            

         String类型中的方法:除了java.lang.String中的方法以外,还包括DefaultGroovyMethods以及StringGroovyMethods中的方法

          常用方法:

            center()  字符串填充方法 (在括号中传入数字,会在字符串两端填充空格使字符串长度等于该数字)

            padLeft()  在字符串左端填充

            >  可以比较两个字符串的大小(ASCII码)

            []  可以直接获取字符串下标对应的字符,例如[1..2]会取出字符串第2个到第三个字符

            -  直接减去字符串中的某一段

            reverse()  字符串倒序

            capitalize9()  首字母大写

            ..  获取前后两个值区间的内容
            更多方法可以查看官方API文档...

      3.Groovy中的逻辑控制

        1.switch语句:

          在Java中switch不支持Long,double,float以及boolean数据类型,否则会报Cannot switch on a value of type long. Only convertible int values, strings or enum variables are permitted错误。

          而在Groovy中,switch支持更多数据类型,测试如下

    long factor = 11
    switch(factor){
        case String: println "string"
            break;
        case Integer: println "Integer"
            break;
        case Long: println "Long"
            break;
        case Double: println "Double"
            break;
        case Float: println "Float"
            break;
    }

        2.for循环

          相比较与Java中的for循环,Groovy中使用起来更为快捷,例如取一个Map集合中的全部value值

    for (i in ['a':97,'b':98,'c':99]){
        println ii.value;
    }

      4.Groovy中闭包

        1.简单了解闭包:通俗来说,闭包就是一段代码块,例如下列就是一个非常简单的闭包的定义和调用

    def b1 = {//闭包的定义
        println "hello world"
    }
    b1()//闭包的调用
    b1.call()//闭包的调用

        2.带参数的闭包:

    def b2 = {
    String name , int time -> println "hello ${name},时间: ${time}" //左边表示参数类型及参数,右边调用了参数
    }
    b2("世界",2019)

        3.闭包的返回值:

          注意:闭包一定有返回值,就算没有return,闭包也会默认返回null,如果有return,则返回return的值

  • 相关阅读:
    浅入浅出数据结构(17)——有关排序算法的分析
    浅入浅出数据结构(16)——插入排序
    浅入浅出数据结构(15)——优先队列(堆)
    浅入浅出数据结构(14)——散列表
    浅入浅出数据结构(13)——平衡二叉查找树之AVL树
    浅入浅出数据结构(12)——从二分查找到二叉树
    老项目的#iPhone6与iPhone6Plus适配#Icon适配
    老项目的#iPhone6与iPhone6Plus适配#iOS8无法开启定位问题和#解决方案#
    老项目的#iPhone6于iPhone6Plus适配#iPhone6分辨率与适配
    iOS设备屏幕像素总览
  • 原文地址:https://www.cnblogs.com/ywb-articles/p/10979779.html
Copyright © 2020-2023  润新知