https://mp.weixin.qq.com/s/DVcA2UixnB_6vgI3SjZGyQ

 
调试wirePrefix方法。
 
1. 实现
 
wirePrefix用于调整名称格式,其实现如下:
 
使用正则表达式,把名称从驼峰格式如“CamelCaseNameStyle”变为Linux格式如“camel_case_name_style”。
 
 
2. 提取
 
这个方法的实现比较独立,可以单独提取出来调试执行,以了解其执行过程。
 
 
执行结果如下:
 
3. 正则表达式
 
1) "([a-z])([A-Z])".r
 
a. [a-z]代表一个小写字母
b. [A-Z]代表一个大写字母;
c. ()代表一个匹配项:这里有两个匹配项,第一个匹配项匹配一个小写字母,第二个匹配项匹配一个大写字母;
 
2) "_?node$".r
 
a. "_"代表一个"_"字符;
b. "?"代表0个或多个,这里的意思是0个或多个下划线字符;
c. "$"代表字符串的结尾,这里"node$"代表字符以"node"结尾;
 
 
4. 转换步骤
 
1) decamel
a. 替换全部匹配:replaceAllIn
b. 在小写字母l和大写字母h之间添加下划线“_”:case camelCase(l, h) => l + "_" + h }
 
2) 转变为小写:decamel.toLowerCase
 
3) trimNode,去除结尾的"node":
 
4) 结尾追加下划线,以把返回值用作前缀(prefix):
 
 
5. 调试
 
1) decamel
 
 
2) trimNode
 
 
 
 
3) 返回空
 
 

Rocket - diplomacy - wirePrefix的更多相关文章

  1. Rocket - diplomacy - LazyModule的组织方式

    https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule L ...

  2. Rocket - diplomacy - LazyModule的实例化(补)

    https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  3. Rocket - diplomacy - LazyModule的实例化

    https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  4. Rocket - diplomacy - LazyModule

    https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ   介绍LazyModule的实现.     ​​   1. children   LazyModu ...

  5. Rocket - diplomacy - ValName

    https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ   简单调试ValName实现:   1. 使用     ​​   Desugar之后如下: ​​ ...

  6. Rocket - diplomacy - BaseNode

    https://mp.weixin.qq.com/s/eOgNLi_MJ8HJOpepGaaW8Q   简单介绍BaseNode的实现.   ​​   1. You cannot create a n ...

  7. Rocket - diplomacy - NodeHandle相关类

    https://mp.weixin.qq.com/s/GWL41P1G1BXm2sTeLmckdA   介绍NodeHandle相关的类.     ​​   1. NoHandle   顶层类(tra ...

  8. Rocket - diplomacy - DUEB参数模型的设计

    https://mp.weixin.qq.com/s/9PEEpe1pkQDN9RWpOGSUCQ   介绍DUEB参数模型的设计,不包含实现(实现对设计做了简化).     1. DUEB   di ...

  9. Rocket - diplomacy - 模块结构信息

    https://mp.weixin.qq.com/s/cTRxXwWNEeb4-XX_t4bRcg   讨论模块结构信息的来源及使用方式.     ​​   1. diplomacy   diplom ...

随机推荐

  1. 最小点覆盖(König定理)

    König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数.如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有 ...

  2. Coursera课程笔记----C程序设计进阶----Week 3

    函数的递归(Week 3) 什么是递归 引入 函数可以嵌套调用:无论嵌套多少层,原理都一样 函数不能嵌套定义:不能在一个函数里再定义另一个函数,因为所有函数一律平等 问题:一个函数能调用它自己吗? 举 ...

  3. 【Spark】通过创建DataFrame读取不同类型文件内容

    文章目录 读取文本文件 第一种方法:通过RDD配合case class转换DataFrame 步骤 一.创建测试所需的文本文件 二.在spark-shell中执行以下操作 第二种方法:通过sparkS ...

  4. 【Kafka】Consumer API

    Consumer API Kafka官网文档给了基本格式 http://kafka.apachecn.org/10/javadoc/index.html?org/apache/kafka/client ...

  5. Qt子窗口设置背景色只能应用到其中的部件的问题

    问题描述:设置父窗口后子窗口会嵌在父窗口中,背景变透明,此时用qss设置子窗口的背景色发现只应用到的子窗口的控件中,除控件外的地方并没有应用到背景色. 解决方法:不使用qss设置背景色,重写paint ...

  6. springboot整合mybatis,利用mybatis-genetor自动生成文件

    springboot整合mybatis,利用mybatis-genetor自动生成文件 项目结构: xx 实现思路: 1.添加依赖 <?xml version="1.0" e ...

  7. flink流处理从0到1

    一.DataStream API之Data Sources(消费者之数据源) 介绍: source是程序的数据源输入,你可以通过StreamExecutionEnvironment.addSource ...

  8. vue面试常遇到的面试题

    最近面试了好几家公司,总结一下经常被问到的面试题. 首先呢,一开始先来一个自我介绍,没啥好说的. 接下来就是考验你vue技术的问题了 一些常见的面试题 vue的生命周期 一共有八个阶段,分别为创建前后 ...

  9. java方法调用顺序

    public class JavalearningApplicationTests { static { System.out.println("Test的静态代码块"); } p ...

  10. 2018-06-21 js正则表达式

    正则表达式:描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 1.修饰符 i->忽略大小写: g->全部匹配: m- ...