Perl 6和打印列
Perl 6具有与Unicode :: GCString的columns
方法等价的功能吗?
Perl 5例子:
#!/usr/bin/env perl
use warnings;
use strict;
use 5.10.0;
use utf8;
use open qw( :std :utf8 );
use Unicode::GCString;
my $s = '合'; # U+5408
say length $s; # 1
my $gcs = Unicode::GCString->new( $s );
say $gcs->columns; # 2
Perl6具有内置的Unicode支持,本机Uni和NFC / NFD / NFKC / NFKD标准化类型。
我隐约明白的是,Unicode :: GCString :: columns方法决定了eastasian语言的linebreaking支持。 合是由2个“音节”(他们称之为“字素集群”)在彼此的顶部,因此2列。
也就是说,perl6在内部(在MoarVM级别上)可以访问存储分行属性的unicode数据库,但据我所知目前没有模块,比如Unicode :: UCD可用于使East_Asian_Width属性可用于类似于统一:: GCString。
另一方面,将Unicode :: LineBreak转换为perl6看起来很简单,通过NativeCall访问Sombok库。
链接地址: http://www.djcxy.com/p/86437.html下一篇: Setting and getting a boolean object property in JavaScript