首页 文章 精选 留言 我的

精选列表

搜索[Go语言],共10000篇文章
优秀的个人博客,低调大师

C语言操作mysql预处理的封装

mysql预处理的优点在于 1.安全性高.预处理变量用占位符?表示,与sql语句是分别传递给服务器,安全性相对比较高. 2.占用流量低.在sql语句已经发送的情况下,只要发送绑定变量的不同值即可. 然而mysql预处理也有一个很大的缺点,就是大量变量绑定的代码,可读性极差,冗余重复代码很多. 我们思考预处理如何做到扬长避短,将冗余代码不放在mysql预处理封装的代码中,而是放在结构体初始化的文件中.这样在结构体初始化的繁琐要好过预处理时的繁琐. 然而结构体的成员变量如何与预处理的bind关联呢? 答案无非是数组.输入数组关联预处理的绑定参数,输出数组关联预处理的绑定结果. 数组的数据来源是结构体,结构体如何将成员变量交接给数组呢? 于是我们冥思苦想发现这个预处理的封装是系统性的工程.需要借助第三方的一些代码完成任务.比如想要把结构体成员对象存取,最好的办法不外乎是hashmap,对输出结果的返回最通用的结构体不外乎是json.因此需要引入hashmap和json. 这样还需要设计一个场景,存取结构体成员,于是我们想到了数据表的crud通用操作.接下来就是设计各个crud的函数用hashmap存取结构体变量.大致流程如此. 代码参考gtee开源仓库https://gitee.com/solider12/lazy-cats-code-warehouse/tree/master

优秀的个人博客,低调大师

木兰语言 0.1.0 展示今年悬赏任务成果

【安装:pip install ulang,用法与例程请见PyPI。源码位于开源中国。注意:必需 python 3.7,源码文件需 UTF-8 编码】 2022年小结 去年,七月发布 0.0.22 版之后项目静默了一段时间。今年一月末开始悬赏任务又开始大步推进。重现功能量较大,因此发布大版本。 感激所有参与者的合作、耐心和探究精神! 此版本重现功能 按各悬赏任务的完成先后顺序逐个介绍。 更多增量运算 早先完成了 += -=,现已完成余下的 *= ^= |= &= /= %= 等: > a = 10 > a %= 4 > a 2 木兰源码转换为 Python 现在 --dump-python 命令行选项可以将木兰源码转换为 Python 源码: > 木兰 --dump-python 测试\算法\排序\冒泡.ul import sys from math import * ARGV = sys.argv[1:] def 冒泡(数列): 换过 = True while 换过: 换过 = False for i in range(0, len(数列) - 2 + 1): 前项 = 数列[i] 后项 = 数列[i + 1] if (前项 > 后项): (数列[i], 数列[i + 1]) = (后项, 前项) 换过 = True 打乱数列 = [5, 2, 1, 8, 4] 冒泡(打乱数列) print(打乱数列) 匿名函数支持多参数与无参数 以及注解参数类型 > 体积 = (长:int, 宽:int, 高:int) -> 长*宽*高 print(体积(2, 3, 4)) 24 > a = () -> 3 print(a()) 3 期间发现第一个形参不支持默认值,不解原因。 函数支持若干形参(点点点) 包括普通函数 >func 哈(...) {{ __varargs__ = tuple('ha', 'ha') print(...) } 哈(2, 3, 3, 3) hah 和匿名函数 >b = (...) -> max(...)) print(b(3, 1, 2)) 3 以下是十月末之后完成的。 .. 作为模块路径 详见此 pr using * in .. func talk() { module_py.talk('..') } 更多超类语法,但运行报错,不明用意 见最后两行示例。运行有报错,与原始木兰行为相同,因而仅添加了语法树测试。详见此pr。 type Person : list { func $Person { super.__init__() } } p = Person() v = p.super Person.super(None) 在类型内定义类型 type Animal { type Child { func $Child(name) { $name = name } } func getChildName() { c = Animal.Child('Animal.Child').name return c } } p = Animal() print(p.getChildName()) 十六进制数字 > n = 12 + 0x1F + 0X1a + 0xab + 0XCD print(n) 445 但格式有误时报错比较费解: > print(0xg) 请先定义‘xg’再使用,见第1行<br/> 应该是木兰支持乘法省略乘号的副作用。 (语义待确定)复杂类型注解 详见此pr,语法上支持嵌套的类型注解,但不知用意和建议用法为何。 func hello(a : tuple [ int ]) : int [ float, list [ str ], dict ] { print(a) } a : list [ int ] = 2 补全 try ... catch ... finally try f=open('__init__.py', 'r') { print(len(f.read())) print([][int('0')]) } catch e : ValueError { print('v') } catch e : IndexError { print('i') } finally { print('f') } 重载余下所有操作符,包括二元、一元等 包括下例的 26 个操作符,详见此文档。 type P : str { operator + (a) { return str(self) + str(a) + '啊' } {} } a = P("你") b = P("好") print(a+b) // 输出“你好啊” 其他维护 测试.unittest.原始可执行文件 报错问题,期间研究了编解码问题。 添加github workflow与对应徽章 两周来的一系列代码和文档规整和清理

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册