オープンソース 1 周年、清語の新バージョンがリリース

再び 6 月 1 日がやってきました。また、この記念すべき日に、Qing Language の最初のオープンソース バージョンがリリースされてから 1 周年を迎えます。新しいバージョンの Qing Language v1_20240601 をリリースします。

新しいバージョンをダウンロードします: https://qingyuyan.cn/download.html

主な更新内容は以下のとおりです。

1. プラットフォームが .Net8 に更新されました

2. エディタにWindowsプログラムのパッケージ化機能を追加しました。多くのユーザーが Qing 言語プログラムを実行可能ファイルにパッケージ化できるようにしたいと報告しているため、新しいバージョンにこの機能を追加しました。

この機能は基本的に、Qing 言語インタプリタまたは Qing プログラミング プログラムとスクリプト コードを 1 つの exe ファイルにパッケージ化します。プログラム リソースは、現在、Windows での使用のみサポートされています。

3. BindAnno アノテーションを追加しました。これは、C# ネイティブ オブジェクトとプロパティを Qing 言語オブジェクトにバインドして、Qing 言語拡張ライブラリの開発を容易にするために使用されます。次に例を示します。

// 在扩展库中有如下对象
    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、10 進数、および string が含まれます。

複雑なオブジェクトの場合は、次のようにパス バインディングもサポートされます。

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

この方法では、バインディング オブジェクトの実際のタイプを指定する必要があります。

4. コード番号トースト ライブラリをカプセル化し、ツール サポートを提供します。 Qing Language 1.0 以降の主な作業の方向性は、動的拡張ライブラリを通じて Qing Language の機能を強化することです。今回は、非常に優れたツール ライブラリの一部の機能を .Net ( Code Toast ) にカプセル化し、すべての人に利便性を提供します。 。今後も清語の拡張ライブラリを拡充していきます。

Qingyu-Code Toast ライブラリ の使用説明書

以下に簡単な例をいくつか示します。

#库 = @加载动态库、“./数据库连接库.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