ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object

ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object

 2017/12/7 23:14:38  S#(炫语派)  程序员俱乐部  我要评论(0)
  • 摘要:ShoneSharp语言(S#)的设计和使用介绍系列(7)—布尔Bool及对象Object作者:Shone声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。摘要:布尔值(对应C#的bool)表示是/否两种状态,对应关键字true、false。对象(对应C#的object)表示任意对象,是所有类型的基类型,关键字null表示空对象。Object在S#中有大量的使用,用的好了熟了会让你领悟:看山是山;看山不是山;看山还是山。软件
  • 标签:使用 设计 ARP

 

 

ShoneSharp语言(S#)的设计和使用介绍

系列(7)— 布尔Bool及对象Object

作者:Shone

声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。

摘要: 布尔值(对应C#的bool)表示是/否两种状态,对应关键字true、false。对象(对应C#的object)表示任意对象,是所有类型的基类型,关键字null表示空对象。Object 在S#中有大量的使用,用的好了熟了会让你领悟:看山是山;看山不是山;看山还是山

软件: S#语言编辑解析运行器,运行环境.NET 4.0,绿色软件,单个EXE直接运行,无副作用。网盘下载链接为https://pan.baidu.com/s/1dF4e08p

 

写博客还是蛮辛苦的,所以请大家再坚持一下,今天把布尔Bool及对象Object这两个类型介绍完后,后面将进入S#比较有特色的介绍,这里预告一下,看能不能多吸引点人气

系列(7) —  最炫“公式”风

系列(8) —  一等公民“函数“爱

系列(9) —  富家子弟“语句“不炫富

系列(10)—  “类”披炫服靓妆化成“表”

一、布尔Bool

布尔(对应C#的bool)表示是/否两种状态,S#为之预留了两个关键字true、false。当然你也可以输入True/False,或是/否。

布尔值一般专门进行逻辑判断使用,几乎所有现代语言都支持该类型。

二、对象Object

对象(对应C#的object)表示任意对象,是所有类型的基类型,S#为之预留了一个关键字null,表示空对象。

编程语言素来有关于强类型与弱类型之优劣的争辩,其根源就在于Object这种类型(C++中是指针)神一般的存在。个人对强类型与弱类型意见取中庸之道,认为都有必要支持,各有利弊之处。

Object 在S#中有大量的使用,用的好了熟了,简直可以让你达到参禅之境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水。

 二话不说上S#代码:

class="brush:csharp;gutter:true;">{
    1 + 2  ,
    1 + [ 10 , 20 ]  ,
    [ 1 , 2 ] + 10  ,
    [ 10 , 20 , 30 ] + [ 1 , 2 ]  ,
    cos( 30 )  ,
    cos( [ 10 , 20 , 30 ] )  ,
    cos( { 10 , [ 20 , 30 ] , 40 } )  ,
    cos( {
        a = 10  ,
        b = 20  ,
        c = [ 30 , 40 ]  ,
        d = { 50 , 60 }  ,
        f = { m = 90 }
    } )
}
//计算结果:
{
    3  ,
    [ 11 , 21 ]  ,
    [ 11 , 12 ]  ,
    [ 11 , 22 , 32 ]  ,
    0.86602540378443871  ,
    [
        0.984807753012208  ,
        0.93969262078590843  ,
        0.86602540378443871
    ]  ,
    {
        0.984807753012208  ,
        [
            0.93969262078590843  ,
            0.86602540378443871
        ]  ,
        0.766044443118978
    }  ,
    {
        0.984807753012208  ,
        0.93969262078590843  ,
        [
            0.86602540378443871  ,
            0.766044443118978
        ]  ,
        { 0.64278760968653936 , 0.5 }  ,
        { 0 }
    }
}

下面很多算符、函数、属性以及方法接受的参数就是Object,表明它们可以接受多种数据类型,具体可参见成员说明。

三、常量

Bool False

说明:否

输入:False

 

Bool True

说明:是

输入:True

 

Object Null

说明:空值

输入:Null

 

四、单目算符

! Object → Object

说明:对布尔值取反

输入:!true

求值:False

 

- Object → Object

说明:对象取负

输入:-10

 

~ Object → Object

说明:对数组、列表反转

输入:~[1,2,3]

求值:[3, 2, 1]

 

五、双目算符

Object != Object → Bool

说明:判断两个对象值是否完全不等

输入:5!=10

求值:True

 

Object ?? Object → Object

说明:非空取值

输入:null??10

求值:10

 

Object < Object → Object

说明:判断是否小于

输入:5<10

求值:True

 

Object <= Object → Object

说明:判断是否小于或等于

输入:5<=10

求值:True

 

Object == Object → Bool

说明:判断两个对象值是否完全相等

输入:5==10

求值:False

 

Object > Object → Object

说明:判断是否大于

输入:5>10

求值:False

 

Object >= Object → Object

说明:判断是否大于或等于

输入:5>=10

求值:False

 

Object % Object → Object

说明:对象相余

输入:10%3

求值:1

 

Object && Object → Object

说明:布尔值相与

输入:true && false

求值:False

 

Object & Object → Object

说明:连插数组

输入:[1,2] & [10,20]

求值:[1, 10, 20, 2]

 

Object * Object → Object

说明:对象相乘

输入:5*10

求值:50

 

Object / Object → Object

说明:对象相除

输入:10/3

求值:3.3333333333333335

 

Object ^ Object → Object

说明:对象乘方

输入:5^3

求值:125

 

Object - Object → Object

说明:对象相减

输入:5-10

求值:-5

 

Object | Object → Object

说明:交插数组

输入:[1,2] | [10,20]

求值:[1, 10, 2, 20]

 

Object || Object → Object

说明:布尔值相或

输入:true || false

求值:True

 

Object + Object → Object

说明:对象相加

输入:5+10

求值:15

 

六、其他符号

Object[Double:Double] → Object

说明:获取子元素数组

输入:[10,20,30,40][1:2]

求值:[20, 30]

 

Object[Object|Object[],...] → Object

说明:获取子元素

输入:[10,20,30][1]

求值:20

 

七、函数

Bool assert(bool arg,...)

说明:断言系列布尔值(true正常,false发生错误

输入:assert(true)

求值:True

 

Object abs(Object obj)

说明:求绝对值

输入:abs(-100)

求值:100

 

Object acos(Object obj)

说明:求反余弦角度值

输入:acos(0.5)

求值:60

 

Object acosh(Object obj)

说明:求反双曲余弦弧度值

输入:acosh(1.5)

求值:0.96242365011920694

 

Object actg(Object obj)

说明:求反反切角度值

输入:actg(1)

求值:45

 

Object actgh(Object obj)

说明:求反双曲反切弧度值

输入:actgh(1.5)

求值:0.80471895621705014

 

Object among(Object t, Double d1, Double d2)

说明:求[d1,d2]区间参量t的线性插值

输入:among(0,8,0.25)

求值:8

 

Object asin(Object obj)

说明:求反正弦角度值

输入:asin(0.5)

求值:30

 

Object asinh(Object obj)

说明:求反双曲正弦弧度值

输入:asinh(0.5)

求值:0.48121182505960347

 

Object atg(Object obj)

说明:求反正切角度值

输入:atg(1)

求值:45

 

Object atgh(Object obj)

说明:求反双曲正切弧度值

输入:atgh(0.5)

求值:0.54930614433405489

 

Object ceil(Object obj)

说明:求上取整值

输入:ceil(9.8)

求值:10

 

Object ceil(Object obj, Double d)

说明:求按步长上取整值

输入:ceil(10.4,0.5)

求值:10.5

 

Object cos(Object obj)

说明:求角度余弦值

输入:cos(60)

求值:0.5

 

Object cosh(Object obj)

说明:求弧度双曲余弦值

输入:cosh(0.5)

求值:1.1276259652063807

 

Object ctg(Object obj)

说明:求角度反切值

输入:ctg(45)

求值:1

 

Object ctgh(Object obj)

说明:求弧度双曲反切值

输入:ctgh(0.5)

求值:2.1639534137386529

 

Object exp(Object obj)

说明:求自然幂值

输入:exp(10)

求值:22026.465794806718

 

Object floor(Object obj)

说明:求下取整值

输入:floor(9.4)

求值:9

 

Object floor(Object obj, Double d)

说明:求按步长下取整值

输入:floor(10.4,0.5)

求值:10

 

Object lg(Object obj)

说明:求10为底对数值

输入:lg(10)

求值:1

 

Object ln(Object obj)

说明:求自然对数值

输入:ln(10)

求值:2.3025850929940459

 

Object log(Object obj, Double newBase)

说明:求指定底对数值

输入:log(10,2)

求值:3.3219280948873626

 

Object param(Object d, Double d1, Double d2)

说明:求d对应[d1,d2]区间的参量

输入:param(4,0,8)

求值:0.5

 

Object round(Object obj)

说明:求四舍五入取整值

输入:round(10.5)

求值:11

 

Object round(Object obj, Double d)

说明:求按步长四舍五入取整值

输入:round(10.4,0.5)

求值:10.5

 

Object sign(Object obj)

说明:求符号值

输入:sign(-10)

求值:-1

 

Object sin(Object obj)

说明:求角度正弦值

输入:sin(30)

求值:0.5

 

Object sinh(Object obj)

说明:求弧度双曲正弦值

输入:sinh(0.5)

求值:0.52109530549374738

 

Object sqrt(Object obj)

说明:求平方根值

输入:sqrt(10)

求值:3.1622776601683795

 

Object tg(Object obj)

说明:求角度正切值

输入:tg(45)

求值:1

 

Object tgh(Object obj)

说明:求弧度双曲正切值

输入:tgh(0.5)

求值:0.46211715726000974

 

Object trunc(Object obj)

说明:求截取整值

输入:trunc(9.5)

求值:9

 

Object trunc(Object obj, Double d)

说明:求按步长截取整值

输入:trunc(10.4,0.5)

求值:10

 

八、属性

Object Object.cm_print

说明:打印1厘米=10mm/WcsScale

输入:x.cm_print

 

Object Object.cm_unit

说明:换算1厘米=10mm

输入:x.cm_unit

 

Object Object.dm_print

说明:打印1分米=100mm/WcsScale

输入:x.dm_print

 

Object Object.dm_unit

说明:换算1分米=100mm

输入:x.dm_unit

 

Object Object.dmm_print

说明:打印1丝米=0.01mm/WcsScale

输入:x.dmm_print

 

Object Object.dmm_unit

说明:换算1丝米=0.01mm

输入:x.dmm_unit

 

Object Object.ft_print

说明:打印1英尺=304.8mm/WcsScale

输入:x.ft_print

 

Object Object.ft_unit

说明:换算1英尺=304.8mm

输入:x.ft_unit

 

Double Object.HashCode

说明:哈希码

输入:x.HashCode

 

Object Object.in_print

说明:打印1英寸=25.4mm/WcsScale

输入:x.in_print

 

Object Object.in_unit

说明:换算1英寸=25.4mm

输入:x.in_unit

 

Object Object.km_print

说明:打印1公里=1000000mm/WcsScale

输入:x.km_print

 

Object Object.km_unit

说明:换算1公里=1000000mm

输入:x.km_unit

 

Object Object.m_print

说明:打印1米=1000mm/WcsScale

输入:x.m_print

 

Object Object.m_unit

说明:换算1米=1000mm

输入:x.m_unit

 

Object Object.mi_print

说明:打印1英里=1609344mm/WcsScale

输入:x.mi_print

 

Object Object.mi_unit

说明:换算1英里=1609344mm

输入:x.mi_unit

 

Object Object.mm_print

说明:打印1毫米=1mm/WcsScale

输入:x.mm_print

 

Object Object.mm_unit

说明:换算1毫米=1mm

输入:x.mm_unit

 

Object Object.nm_print

说明:打印1纳米=0.000001mm/WcsScale

输入:x.nm_print

 

Object Object.nm_unit

说明:换算1纳米=0.000001mm

输入:x.nm_unit

 

Object Object.nmi_print

说明:打印1海里=1852000mm/WcsScale

输入:x.nmi_print

 

Object Object.nmi_unit

说明:换算1海里=1852000mm

输入:x.nmi_unit

 

String Object.OutCsv

说明:返回对应的Csv字符串

输入:x.OutCsv

 

String Object.OutStr

说明:返回对应的表示字符串

输入:x.OutStr

 

String Object.SpanStr

说明:转换为跨径字符串

输入:x.SpanStr

 

String Object.ToStr

说明:转换为对应字符串

输入:x.ToStr

 

String Object.TypeName

说明:类型名

输入:x.TypeName

 

Object Object.um_print

说明:打印1微米=0.001mm/WcsScale

输入:x.um_print

 

Object Object.um_unit

说明:换算1微米=0.001mm

输入:x.um_unit

 

String Object.XYShortStr

说明:对应的XY简化文本

输入:x.XYShortStr

 

String Object.XYStr

说明:对应的XY文本

输入:x.XYStr

 

String Object.XYZShortStr

说明:对应的XYZ简化文本

输入:x.XYZShortStr

 

String Object.XYZStr

说明:对应的XYZ文本

输入:x.XYZStr

 

Object Object.yd_print

说明:打印1码=914.4mm/WcsScale

输入:x.yd_print

 

Object Object.yd_unit

说明:换算1码=914.4mm

输入:x.yd_unit

 

Object Object.尺_print

说明:打印1尺=333.33333mm/WcsScale

输入:x.尺_print

 

Object Object.尺_unit

说明:换算1尺=333.33333mm

输入:x.尺_unit

 

Object Object.寸_print

说明:打印1寸=33.3333333mm/WcsScale

输入:x.寸_print

 

Object Object.寸_unit

说明:换算1寸=33.3333333mm

输入:x.寸_unit

 

Object Object.分_print

说明:打印1分=3.3333333mm/WcsScale

输入:x.分_print

 

Object Object.分_unit

说明:换算1分=3.3333333mm

输入:x.分_unit

 

Object Object.厘_print

说明:打印1厘=0.3333333mm/WcsScale

输入:x.厘_print

 

Object Object.厘_unit

说明:换算1厘=0.3333333mm

输入:x.厘_unit

 

Object Object.里_print

说明:打印1里=500000mm/WcsScale

输入:x.里_print

 

Object Object.里_unit

说明:换算1里=500000mm

输入:x.里_unit

 

Object Object.丈_print

说明:打印1丈=3333.3333333mm/WcsScale

输入:x.丈_print

 

Object Object.丈_unit

说明:换算1丈=3333.3333333mm

输入:x.丈_unit

 

九、方法

Object Object.Mirror(Object axis)

说明:相对指定轴线镜像

输入:x.Mirror(axis(30))

 

Object Object.Mirror3d(Object plane)

说明:相对指定平面镜像

输入:x.Mirror3d(plane3d((0,0,0),vect3d(0,1,0)))

 

Object Object.Oblique(Object a)

说明:相对原点无旋转斜交

输入:x.Oblique(10)

 

Object Object.Oblique(Object a, Object oblique)

说明:相对点O旋转倾斜,注意线段全部以直代曲,oblique=0旋转无斜交,1旋转斜交,2旋转斜放,3旋转斜垂,NaN无旋转斜交

输入:x.Oblique(10,1)

 

Object Object.ObliqueAt(Object p, Object a, Object oblique)

说明:相对点O旋转倾斜,注意线段全部以直代曲,oblique=0旋转无斜交,1旋转斜交,2旋转斜放,3旋转斜垂,NaN无旋转斜交

输入:x.ObliqueAt((0,0),10,1)

 

Object Object.Pan(Object dx, Object dy)

说明:步长平移

输入:x.Pan(10,10)

 

Object Object.Pan3d(Object dx, Object dy, Object dz)

说明:步长平移

输入:x.Pan3d(10,10,10)

 

Object Object.Pan3dP(Object p)

说明:参照平移

输入:x.Pan3dP((10,10,10))

 

Object Object.Pan3dV(Object v)

说明:向量平移

输入:x.Pan3dV(vect3d(10,10,10))

 

Object Object.Pan3dX(Object dx)

说明:水平平移

输入:x.Pan3dX(10)

 

Object Object.Pan3dY(Object dy)

说明:垂直平移

输入:x.Pan3dY(10)

 

Object Object.Pan3dZ(Object dz)

说明:法向平移

输入:x.Pan3dZ(10)

 

Object Object.PanLA(Object l, Object a)

说明:长度角度平移

输入:x.PanLA(10,30)

 

Object Object.PanLI(Object l, Object i)

说明:长度坡度平移

输入:x.PanLI(10,0.25)

 

Object Object.PanP(Object p)

说明:参照平移

输入:x.PanP((10,10))

 

Object Object.PanV(Object v)

说明:向量平移

输入:x.PanV(vect(10,10))

 

Object Object.PanX(Object dx)

说明:水平平移

输入:x.PanX(10)

 

Object Object.PanXA(Object dx, Object a)

说明:平距角度平移

输入:x.PanXA(10,30)

 

Object Object.PanXI(Object dx, Object i)

说明:平距坡度平移

输入:x.PanXI(10,0.25)

 

Object Object.PanY(Object dy)

说明:垂直平移

输入:x.PanY(10)

 

Object Object.PanYA(Object dy, Object a)

说明:垂距角度平移

输入:x.PanYA(10,30)

 

Object Object.PanYI(Object dy, Object i)

说明:垂距坡度平移

输入:x.PanYI(10,0.25)

 

Object Object.Project3d(Object plane)

说明:相对指定平面投影

输入:x.Project3d(plane3d((0,0,0),vect3d(0,1,0)))

 

Object Object.Rotate(Object a)

说明:相对原点逆时针旋转

输入:x.Rotate(30)

 

Object Object.Rotate3d(Object axis, Object a)

说明:相对指定轴逆时针旋转

输入:x.Rotate3d(axis3d(30),30)

 

Object Object.Rotate3dX(Object a)

说明:相对X轴逆时针旋转

输入:x.Rotate3dX(30)

 

Object Object.Rotate3dY(Object a)

说明:相对Y轴逆时针旋转

输入:x.Rotate3dY(30)

 

Object Object.Rotate3dZ(Object a)

说明:相对Z轴逆时针旋转

输入:x.Rotate3dZ(30)

 

Object Object.RotateAt(Object o, Object a)

说明:相对点O逆时针旋转

输入:x.RotateAt((0,0),30)

 

Object Object.Scale(Object s)

说明:相对原点等比例缩放

输入:x.Scale(2)

 

Object Object.Scale3d(Object s)

说明:相对原点等比例缩放

输入:x.Scale3d(2)

 

Object Object.Scale3dAt(Object o, Object s)

说明:相对点O等比例缩放

输入:x.Scale3dAt((0,0,0),2)

 

Object Object.ScaleAt(Object o, Object s)

说明:相对点O等比例缩放

输入:x.ScaleAt((0,0),2)

 

Object Object.ScaleXY(Object sx, Object sy)

说明:相对原点不等比例缩放,注意线段全部以直代曲

输入:x.ScaleXY(1,2)

 

Object Object.ScaleXYAt(Object p, Object sx, Object sy)

说明:相对点O不等比例缩放,注意线段全部以直代曲

输入:x.ScaleXYAt((0,0),1,2)

 

Object Object.Set3dX(Object x)

说明:设置X

输入:x.Set3dX(10)

 

Object Object.Set3dY(Object y)

说明:设置Y

输入:x.Set3dY(10)

 

Object Object.Set3dZ(Object z)

说明:设置Z

输入:x.Set3dZ(10)

 

Object Object.SetX(Object x)

说明:设置X

输入:x.SetX(10)

 

Object Object.SetY(Object y)

说明:设置Y

输入:x.SetY(10)

 

Object Object.Transform(Object ucs)

说明:变换到指定坐标系外

输入:x.Transform(ucs(30))

 

Object Object.Transform3d(Object ucs)

说明:变换到指定坐标系外

输入:x.Transform3d(ucs3d(30))。

最近三个章节按数据类型和成员分类进行介绍不会漏项,但是缺点是初学者看起来比较容易迷糊,内容也显得枯燥让人打瞌睡。不过总算结束了,有了这四块看不起眼的砖头,后面大家来看看可以砌成什么样的大楼。

 

声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。

软件: S#语言编辑解析运行器,运行环境.NET 4.0,绿色软件,单个EXE直接运行,无副作用。网盘下载链接为https://pan.baidu.com/s/1dF4e08p

发表评论
用户名: 匿名