Archives : February-2021

Closure – 闭包
在Java中的Lambda和Groovy的Closure非常相似,但是底层的实现机制是非常不同的。
# 简单示例
对于一个「闭包」的简单使用如下:

// 声明一个闭包
Closure listener = { e -> println “Clicked on $e” }

// 两种调用方式
listener(“str”)
listener.call(“str”)

调用方式两种:以函数的方式调用;或者调用call()方法。
# 作为参数传递
「闭包」也可以作为方法的参数传入。类似于“传递函数的调用”。看[……]

Read more

问题描述
在执行 Groovy 脚本时,我们希望可以彩色化输出日志,以进行提醒、区分不同的信息。比如,错误信息显示为红色,警告信息显示为黄色,成功信息显示为绿色,普通信息显示为正常颜色。
该笔记将记录:在 Groovy 中,如何使用 ANSI Color 转义序列,来控制日志输出颜色。
解决方案
方案一、直接使用转义序列

def ANSI_RESET = “\u001B[0m”;
def ANSI_BLACK = “\u001B[30m”;
def ANSI_RED = “\u001B[31m”;
def ANSI_GREEN = “\u001B[32m”;[……]

Read more

问题描述
当我们使用编辑器打开文件时,文件有时候会显示为乱码,也就是说编辑器没有使用正确的编码方式打开文件。此时,我们则需要切换编辑器的编码方式,使用正确的编码方式打开文件。
但是,我们应该如何得知文件的正确编码呢?(除了被告知以外)
该笔记将记录:在 Linix 中,如何获取文件的编码方式,以及如何进行文件编码转换。
问题原因
直接获取文件的编码是不太可能的。虽然文件头可能暗示了文件编码(但其实并没有类似的规范),但也有例外。例如,以 0xEF,0xBB,0xBF 开头的可能是 UTF-8 编码文件,但也可能是 ISO-8859-1 编码文件的  字符[……]

Read more