Closed ufcpp closed 2 years ago
using System.Text.RegularExpressions;
//lang=regex
var s = @"(\w+)";
//lang=json
var json = @"{ ""abc"": 123 }";
// これでも色がつくようになる予定 (VS 17.2 p1)。
Bar.M(@"{ ""abc"": 123 }");
//lang=date はない!!!
var d = "ffff";
DateTime.Now.ToString("ffffff"); // インテリセンス候補が出るだけ。色付けなし。
class Bar
{
// StringSyntax 属性が .NET 7 Preview 1 に入ってるはず。
public static void M([StringSyntax("json")] string json) { }
}
int x = 123;
//↓こう書きたい予感するけど、多分、 $ 付けると embedded language 働かない。
//lang=json
var rawString = $$"""
{
"abc": {{x}}
}
""";
int x = 123;
//↓こう書きたい予感するけど、多分、 $ 付けると embedded language 働かない。
//lang=json
var rawString = $$"""
{
"abc": {{x}}
}
""";
var f = (ref int x
, int x0, int x1, int x2, int x3, int x4, int x5, int x6, int x7
, int x10, int x11, int x12, int x13, int x14, int x15, int x16, int x17
, int x20, int x21, int x22, int x23, int x24, int x25, int x26, int x27
) => ref x;
これから生成される匿名デリゲートの内部的な名前は <>F{4000000000001}
でした。
ちなみに、 (ref int x) => ref x;
のやつは <>F{00000005}
。
多値 ref 戻り値ほしい…
(ref T A, ref T B) m(int index)
{
var ia = index >> 4;
var ib = 0xF & index;
ref var a = ref table[ia];
ref var b = ref a.SubTable[ib];
return (ref a, ref b);
}
int m(ReadOnlySpan<char> s) => s switch
{
"abc" => 1,
"def" => 2,
_ => 0,
};
using System.Text;
var s = "😊";
var sub = s.Substring(1); // invalid な UTF-16
Console.WriteLine($"{sub} {(int)sub[0]:X}");
var bytes = Encoding.Unicode.GetBytes(sub);
var decoded = Encoding.Unicode.GetString(bytes);
foreach (var b in bytes)
{
Console.WriteLine($"{(int)b:X}");
}
Console.WriteLine($"{decoded} {(int)decoded[0]:X}");
? DE0A
FD
FF
? FFFD
U+200B
今日のラストはビープ音だった
Console.WriteLine("\a");
配信URL: https://www.youtube.com/watch?v=Dx4MbqW0fN8
https://github.com/ufcpp-live/UfcppLiveAgenda/issues/51 もまだ2/3くらい未消化なわけですが。
4件追加 & この内容あんまり配信でやってないかも。
pattern maching on
ReadOnlySpan<char>
にも触れてもいいかも。