当前位置: 首页 > news >正文

石家庄网站建设外贸爬取旅游网站数据并进行分析

石家庄网站建设外贸,爬取旅游网站数据并进行分析,wordpress数据库代码,有限公司怎么纳税最近在学习CodeQL#xff0c;对于CodeQL就不介绍了#xff0c;目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记#xff0c;根据个人知识库笔记修改整理而来的#xff0c;分享出来共同学习。个人觉得QL的语法比较反人类#xff0c;至少与目前主流的这些OOP语言相比对于CodeQL就不介绍了目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记根据个人知识库笔记修改整理而来的分享出来共同学习。个人觉得QL的语法比较反人类至少与目前主流的这些OOP语言相比还是有一定难度的。与现在网上的大多数所谓CodeQL教程不同本系列基于官方文档和情景实例包含大量的个人理解、思考和延伸直入主题只切要害几乎没有废话并且坚持用从每一个实例中学习总结归纳再到实例中验证。希望能给各位一点不一样的见解和思路。当然也正是如此必定会包含一定的错误希望各位大佬能在评论区留言指正。 CodeQL学习笔记(1) CodeQL学习笔记(2) 模块 模块类似于“包”的概念可以把一定的内容进行封装提供了一种组织QL代码的方法避免代码重复。 模块一般可以包含如下六大结构 导入语句谓词类型包括用户定义的类别名显式模块select子句仅在查询模块中可用 文件模块 事实上每一个查询文件(后缀为.ql)和库文件(后缀.qll)都定义了一个隐式的模块这个模块名和文件名相同但是文件名中的空格会被替换成_。例如我们在之前的示例中import tutorial事实上导入的就是tutorial.qll库模块 库模块 后缀qll库模块可以被导入但是不能包含查询语句。 // OneTwoThreeLib.qll class OneTwoThree extends int {OneTwoThree() {this 1 or this 2 or this 3} }文件本身定义了一个名为OneTwoThreeLib的库模块模块的内容里定义了一个OneTwoThree的类别。在其他文件中可以使用import OneTwoThreeLib来导入然后直接使用OneTwoThree这个类。 查询模块 后缀ql查询模块不能被导入必须要有查询语句select或query谓词 # OneTwoQuery.ql import OneTwoThreeLibfrom OneTwoThree ott where ott 1 or ott 2 select ott as res这个文件定义了一个名为OneTwoQuery的查询模块模块内容包含了一个导入语句和select子句 显式模块 直接在另一个模块中定义一个新的模块称为显式模块。定义的内容类似于库模块不能有查询语句。 ... module M {class OneTwo extends OneTwoThree{OneTwo() {this 1 or this 2}} }这定义了一个名为M的显式模块模块内容定义了名为OneTwo的类 参数化模块 在后面的进阶学习过程中可能会涉及可提前查询官方文档 变量 QL中的变量表示一组值事实上是一个等式公式等式条件成立即可不代表任何数据的内存位置更不是赋值这与传统编程语言不同需要区别开来。从理解上来看变量可以理解为暂存满足这个类型条件的所有的值的集合但需要用来受到更进一步的操作和筛选约束因此变量必须为有限个值。 // correct from int i where i in [0..9] // 0 i 9 select i// error无限个值 from int i select i变量又分为绑定变量和自由变量 通俗理解自由变量像是一个待定的代号而绑定变量则是已经赋值的符号 hello.indexOf(l) 1 // 2 and 3, 绑定 min(float f | f in [-3 .. 3]) // -3 绑定 (i 7) * 3 // 自由 x.sqrt() // 自由再来看一组例子 hello.indexOf(l) 1 // 永远不成立 min(float f | f in [-3 .. 3]) -3 // 永远成立 (i 7) * 3 instanceof int // 包含一个自由变量i,成不成立要看i的取值 exists(float y | x.sqrt() y) // 包含x和y自由变量但是不管y怎么取值都不影响整个式子是否成立只与x有关instanceof表示类型检查expression instanceof classname判断是否属于某一类 表达式 这里的理解和其他ool很类似下面看一些例子即可 select count(int i | i 1 or i 2 | i) select concat(int i | i [0..3] | i.toString() order by i desc) // 把03逆序排列并组合 select rank[4](int i | i [5..15] | i*2) // 取出515的第四个数字*2的结果。需要注意rank起始序号从1开始而不是0from int x where x in [-5 .. 5] and x ! 0 select unique(int y | y x or y x.abs() | y) // yx和yx.abs()相等才满足unique唯一确定的要求公式 相等 A ! B 和 not A B意思完全不同 A ! B 表示A和B不完全相同即只要存在一对不同的值就成立A B 表示A与B只要有交集即可即只要存在任何一对值相同就成立not A B 表示完全不相同即A和B没有任何一对值是相同的就成立可以看成上一条的相反 1 ! [1 .. 2]成立因为1 ! 2 1 [1 .. 2]成立因为1 1 not 1 [1 .. 2]不成立因为有一个共同的值1。可以直接看做上面一条的反义 类型检查 x instanceof Person // 检查x是否为Person类型 范围检查 \expression in \range from int i where i 2 and i in [1..3.1] // 在 1 且 3.1的范围内 select i也可以写成expression range from int i where i 2 and i [1..3.1] select i量化 exists exists(variable declarations | formula 1 and formula 2) exists(int i | i instanceof OneTwoThree and i in [1..2])也可以写成exists(variable declarations | formula 1 formula 2) forall forall(variable declarations | formula 1 | formula 2) 表示对于formula1的前提下是否所有的formula2都满足如果是则返回true 例如forall(int i | i instanceof OneTwoThree | i 5)含义是在所有OneTwoThree中是否全都小于5。 逻辑上等于not exists(variable declarations | formula 1 | not formula 2) 因此上面那个例子也可以写作not exists(int i | i instanceof OneTwoThree | not i 5) if…then…else string visibility(Class c){if c.isPublic()then result publicelse result private }注解 以下内容查阅即可 Annotation作用用法示例abstract用于定义抽象实体。可以是抽象类或抽象谓词通常在子类中被重写。abstract class Configuration { abstract predicate isSource(Node source); }cached将实体的计算结果缓存以提高多次引用的效率。cached predicate slowCalculation(int x) { x complexComputation() }deprecated标记不推荐使用的名称通常在文档中提供替代名称。deprecated class OldClass { /* DEPRECATED: Use NewClass instead */ }external用于定义外部模板谓词通常用于数据库谓词。external predicate externalPredicate(int id);transient用于 external 谓词表示在评估过程中不缓存到磁盘。external transient predicate tempCalculation(int x);final标记不可重写的名称或不可被子类继承的类。final predicate hasName(string name) { name this.getName() }library用于标记仅限于 .qll 文件中引用的名称该注解已弃用。library class InternalClass { } // 使用私有模块代替override表示重写基类型中的成员谓词或字段。override predicate isSource(Node source) { … }private阻止名称被导出仅在当前模块的命名空间中引用。private int secretFunction() { result 42 }query将谓词转换为查询使其成为 QL 程序的输出。query predicate findResults() { … }pragma用于编译器优化控制谓词内联等行为。pragma[inline] predicate fastCalculation(int x) { x simpleComputation() }
http://www.w-s-a.com/news/760194/

相关文章:

  • 推广学校网站怎么做公司可以做多个网站吗
  • 游戏网站后台建设郑州定制网站
  • 商务公司网站建设网站建设如何自学
  • 现在建网站可以拖拉式的吗中国国内最新新闻
  • phpstorm网站开发产品logo设计
  • 电子商务网站建设与运营什么是单页面网站
  • 西安优化网站公司南阳微信网站
  • 购物网站线下推广方案佛山快速建站哪家服务专业
  • 临沂网站排名外贸网站推广方法之一
  • 手机网站百度关键词排名查询吕梁网站制作吕梁安全
  • 做网站媒体wordpress管理员账号数据库添加
  • php如何自己做网站wordpress怎么修改编辑代码
  • 网站建网站建设公司WordPress互联
  • 泊头市网站建设价格wordpress导航菜单位置
  • 怎么设立网站赚广告费网页制作素材模板图片
  • 做班级网站的目的网站设计制作公司需要什么资质
  • 济南做网站哪家好财政网站平台建设不足
  • php网站建设招聘网站开发与设计论文
  • 上海 网站建设平台 补贴网站开发招标文件范本
  • 延安网站建设公司电话手机上那个网站做农产品推广比较好
  • 增城哪家网站建设好如何做网站实名认证
  • 常州地区做网站个人购物网站需要备案吗
  • 网站建设公司 跨界鱼科技专业做服务器的网站都有哪些
  • 欧洲网站服务器网站建设费用计入什么科目
  • 网站的色调苏州策划网站模板建站公司
  • 怎么看网站用的什么后台公路建设项目可行性研究报告编制办法哪个网站查最新版
  • 可以看的网站的浏览器有哪些专业APP客户端做网站
  • 如何做网站推广自己的产品推荐个网站好吗
  • 网站经营范围wordpress注入点
  • 学校网站开发协议夫妻网络网站建设