Toml文件使用指南

一. 前言

TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics. TOML is designed to map unambiguously to a hash table. TOML should be easy to parse into data structures in a wide variety of languages.

toml-lang/toml

在了解这个文件格式前, 需要了解以下配置文件的常见格式.

  • json, json格式可以说是互联网中最重要的数据交换载体, 简洁明了, 轻量, 但是唯一遗憾的是不支持注释.
  • ini, 作为一种非常简单易用的格式, 但是不支持复杂的配置, 不支持数字(仅限于字符串), 支持注释, windows上相对流行.
  • xml, 一个逐步退出历史舞台的文件格式, 过于臃肿.
  • yaml, 支持复杂的配置(号称json的扩展版), 但是可阅读性较差?书写规条较多?.

简而言之, 作为一个好用的配置文件, 既需要数据易于存储/读取(同时需要有效数据密度高), 同时也需要有较好的阅读体验. 以json为例, 假如不进行格式化, 将难以阅读其内容.

Toml就号称满足上述要求:

TOML 旨在成为一个语义明显且易于阅读的最小化配置文件格式.TOML 被设计成可以无歧义地映射为哈希表.TOML 应该能很容易地被解析成各种语言中的数据结构.

目前主流的语言多已支持这种文件格式, 详情见v1.0.0 compliant

阅读全文 »

Git(简单)使用指南

一. 前言

picv

Git, 分布式版本管理系统(Distributed Version Control System)的一种.

突然有新的想法, 准备使用新的思路来写代码, 但是担心写不去, 需要在写之前预留一个副本. 避免写不下去时可以返回初始的状态.

多个需求或者多个方案, 代码存在多个分支, 方便维护.

多人同时对一项目作业, 不同部分的协作.

简而言之, 可以归结为以下三大功能:

  • 版本控制
  • 协同工作
  • 代码管理.
阅读全文 »

Python正则表达式 -" \w "-坑

>>> import re
>>> s = '请你查找在职员工自入职以来123的薪水涨anx-d幅情况'
>>> re_a = re.compile('\w+')
>>> re_a.search(s)
<re.Match object; span=(0, 23), match='请你查找在职员工自入职以来123的薪水涨anx'>

对, 没错, \w+这个正则表达式居然匹配出中文来了.

阅读全文 »

牛客网-SQL测试(困难)

题号 题目 难度 通过率
SQL206 获取每个部门中当前员工薪水最高的相关信息 困难 20.23%
SQL264 牛客每个人最近的登录日期(五) 困难 20.64%
SQL215 查找在职员工自入职以来的薪水涨幅情况 困难 22.48%
SQL280 实习广场投递简历分析(三) 困难 26.82%
SQL220 汇总各个部门当前员工的title类型的分配数目 困难 27.95%
SQL270 考试分数(五) 困难 28.20%
SQL275 牛客的课程订单分析(五) 困难 28.98%
SQL219 获取员工其当前的薪水比其manager当前薪水还高的相关信息 困难 31.20%
SQL285 获得积分最多的人(三) 困难 33.74%

牛客网SQL测试

  • 传统方法实现
  • 窗口函数实现

不建议直接看相关的答案, 先手动过一遍, 然后再交叉对比. 特别是264, 270, 179, 189, 这几道题, 其解法非常巧妙.

阅读全文 »

MySQL翻译系列-Window Function Frame Specification

注: frame这里翻译为帧, 取其在行数据上滚动如同胶卷滚动前行之义.

(以下内容实际上陈述的是如何定义滚动窗口的数据范围)

The definition of a window used with a window function can include a frame clause. A frame is a subset of the current partition and the frame clause specifies how to define the subset.

与窗口函数一起使用的窗口的定义可以包括帧子语句, 帧是当前分区的子集,帧语句确定如何定义这个子集.

阅读全文 »

MySQL翻译系列-Window Function Restrictions

The SQL standard imposes a constraint on window functions that they cannot be used in UPDATE or DELETE statements to update rows. Using such functions in a subquery of these statements (to select rows) is permitted.

标准的SQL对窗口函数使用的update, delete语句中进行行更新进行约束. 但支持在这些语句的子查询中使用这样的函数(以选择行).

阅读全文 »