Swift中闭包的使用详解

1:闭包表达式1.1:常规写法let block2 = { (x: Int, y: Int) -> Int in return x + y } print(block2(10, 20)) 1.2:闭包表达式写法let names = ["Chris", "Alex", "Ewa", "Barry", &q

- 阅读全文 -

Django学习记录一

1、在用『Django』开发网站时首先要明确开发的内容,知道自己要哪些功能,创建哪些「APP」。创建「APP」之后,要为「APP」设计模型,设计和修改模型时要谨记修改顺序:在「models.py」中设计和修改模型运行「Python manage.py makemigrations」为新增或改动的迁移进行记录(方便git使用)运行「Python manage.py makemigrate」将操作同步

- 阅读全文 -

Prometheus:一文说尽强大的PromQL表达式

QL顾名思义,Query language即查询语言。Prometheus作为强大的开源监控系统,最大的依赖便是PromQL。是监控数据个性化查询、展示的基础。所以要掌握Prometheus,掌握PromQL是必备的前提。本文通过对PromQL表达式的基本要素和一个复杂的表达式解析,来展示PromQL强大之处。PromQL操作对象类比于sql的操作对应是数据库中的结构化数据,PromQL操作的对象

- 阅读全文 -

Prometheus 企业级实用案例及对应的PromQL表达式

Prometheus是强大的开源企业级监控系统,不仅数据接口简单标准,更具有强大的PromQl作为数据聚合展现的工具。以下通过几个企业级应用案例,介绍监控的原理以及对应的PromQL解析。CPU监控案例CPU是所有任务的核心,大部分出现问题的情况都可以反映在cpu上。数据采集:node_exporterprometheus公式:(1-((sum(increase(node_cpu{mode="id

- 阅读全文 -

swift中Optional的理解

一、 Optional其实是个enum,里面有None和Some两种类型。其实所谓的nil就是Optional.None , 非nil就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这也是为什么在使用Optional的时候要拆包(从enum里取出来原始值)的原因。 enum Optional<T> : LogicValue, Reflectable {

- 阅读全文 -