오픈소스 1주년 기념, Qing Language 새 버전 출시

또 다시 6월 1일이자, Qing Language의 첫 번째 오픈 소스 버전이 출시된 지 1주년이 되는 날이기도 합니다. 이 기억에 남는 날, 우리는 Qing Language v1_20240601의 새 버전을 선보입니다.

새 버전 다운로드: https://qingyuyan.cn/download.html

주요 업데이트 내용은 다음과 같습니다.

1. 플랫폼이 .Net8로 업데이트되었습니다.

2. 편집기는 Windows 프로그램 패키징 기능을 추가합니다. 많은 사용자들이 Qing 언어 프로그램을 실행 파일로 패키징할 수 있기를 원한다고 보고했기 때문에 우리는 새 버전에 이 기능을 추가했습니다.

이 기능은 기본적으로 Qing 언어 인터프리터 또는 Qing 프로그래밍 프로그램과 스크립트 코드를 단일 exe 파일로 패키지합니다. 현재는 Windows에서만 사용할 수 있습니다.

3. Qing 언어 확장 라이브러리 개발을 용이하게 하기 위해 C# 기본 개체 및 속성을 Qing 언어 개체에 바인딩하는 데 사용되는 BindAnno 주석이 추가되었습니다. 예를 들면 다음과 같습니다.

// 在扩展库中有如下对象
    public class DateObj : Obj {

       // 这是之前的写法,需要定义Prop类,并分别实现Qget和Qset方法
       class BindYear : Prop {
           public BindYear(Obj obj) : base(obj) {}

           public override Expr Qget(Ctx? ctx=null) {
               ……
           }
           public override Expr Qset(Expr val, Ctx? ctx=null) {
              ……
           }
       }




        // 通过注解可以直接绑定基本类型的成员
        [BindAnno("#备注")]
        private string remark;*/

    ……

주석 바인딩을 지원하는 유형에는 bool, int, long, float, double, 소수 및 문자열이 포함됩니다.

복잡한 객체의 경우 다음과 같이 경로 바인딩도 지원됩니다.

[BindAnno("#其他", "a.b.c", typeof(DateTime))]
public new object Raw { get; set; }

이 접근 방식을 사용하려면 바인딩 개체의 실제 유형을 지정해야 합니다.

4. 코드 번호 토스트 라이브러리를 캡슐화하고 도구 지원을 제공합니다. Qing Language 1.0 이후의 주요 작업 방향은 동적 확장 라이브러리를 통해 Qing Language의 기능을 풍부하게 하는 것입니다. 이번에는 모든 사람에게 편의를 제공하기 위해 .Net( Code Toast )에 매우 우수한 도구 라이브러리의 일부 기능을 캡슐화했습니다. . 앞으로도 Qing Language의 확장 라이브러리를 지속적으로 확장할 예정입니다.

Qingyu-Code 토스트 라이브러리  사용 지침

다음은 몇 가지 간단한 예입니다.

#库 = @加载动态库、“./数据库连接库.dll”


;数字转换
#库@转中文数字【“123.45”】   ;一百二十三点四五
#库@转中文金额【“123.45”】   ;壹佰贰拾叁元肆角伍分
#库@十进制转任意进制【123,8】   ;十进制转八进制,返回字符串 “173”
#库@任意进制转十进制【“173”,8】  ;八进制转十进制,第一个参数是字符串类型


;农历工具
#库@转农历【“2018-12-31”】    ;支持传入字符串或时间对象,下同
#库@转农历【@系统时间【】】    
#库@转生肖【“2018-12-31”】
#库@转干支【“2018-12-31”】
#库@转农历节日【“2018-12-31”】


;多线程下载器
;指定下载路径和保存路径,最后设置线程数,如果不设置则默认为2线程
#下载器 = #库@创建多线程下载器【“https://qing.if4.ttyt.cc/qing/Qing.dll”, “H:\\Qing.dll”, 3】
#下载器#缓存文件夹 = “H:\\”
#下载器@下载进度变更命令 = @【#某】{@显示、#某#总进度}
#下载器@合并完成命令 = @【#某】{@显示、“下载完成了”}
#下载任务 = #下载器@开始下载【】  ;开始下载返回的是异步任务
@等待任务、#下载任务

추천

출처www.oschina.net/news/295339