B4X编程语言:B4X标准关键字分类汇总列表(77个)
一、数学函数(28个)详见:B4X编程语言:B4X关键字之数学函数(28个) 二、字符及字符串转换类函数(8个)
1、Asc
Asc (Char As Char) As Int
返回给定字符或字符串中的第一个字符的unicode代码点(编码值)。
Asc("a") = 97 ;Asc("abcd")= 97 2、BytesToString
BytesToString (Data() As Byte, StartOffset As Int, Length As Int, CharSet As String) As String
将给定的字节数组Data()解码为字符串。
Data:字节数组。
StartOffset:要读取的第一个字节索引。
Length:要读取的字节长度。
CharSet:字符集的名称。
例如:
Dim s As String
s = BytesToString(Buffer, 0, Buffer.Length, "UTF-8") 3、CharsToString
CharsToString (Chars() As Char, StartOffset As Int, Length As Int) As String
通过从字符数组Chars()中复制字符来创建一个新的字符串。
复制从StartOffset(起始位置索引)开始,复制的字符数等于Length。
Dim s As String
Dim char1() As Char=Array As Char("a","b","c","d","e","f","g","h")
s = CharsToString(char1,2,char1.Length-2)
Log(s) '输出:cdefgh 4、Chr
Chr (UnicodeValue As Int) As Char返回由给定 unicode 值表示的字符。
Chr(65)="A" ;Chr(97)="a" 5、SmartStringFormatter
SmartStringFormatter (Format As String, Value As Object) As String
返回智能字符串文字所使用的内部关键字。 6、CRLF
CRLF As String
换行符,返回Chr(10)的值 7、QUOTE
QUOTE As String
引号字符“。返回 Chr(34) 的值。 8、TAB
TAB As String
TAB字符,返回Chr(9)的值。 三、数字格式化函数(2个)
1、NumberFormat
NumberFormat (Number As Double, MinimumIntegers As Int, MaximumFractions As Int) As String
将指定的数字转换为指定格式的字符串。
Number:要转换的数字,双精度型。
MinimumIntegers:最小保存的整数位数,假如小于等于Number的整数位数,则忽略;假如大于Number的整数位数,则在Number前面用0补足,直至Number的整数位数和MinimumIntegers相称。
MaximumFractions:最大保存的小数位数,假如大于等于Number的小数位数,则忽略;假如小于Number的小数位数,则对小数部门四舍五入,保存MaximumFractions位小数。
Log(NumberFormat(12345.6789, 0, 2)) 输出:'"12,345.68"
Log(NumberFormat(1, 3 ,0)) 输出:'"001"
NumberFormat默认返回的数字字符串带有千位符,可以使用Replace函数去掉千位符:
Log(NumberFormat(12345.6789, 0, 2).Replace(",","")) 输出:'"12345.68" 2、NumberFormat2
NumberFormat2 (Number As Double, MinimumIntegers As Int, MaximumFractions As Int, MinimumFractions As Int, GroupingUsed As Boolean) As String
Number:要转换的数字,双精度型。
MinimumIntegers:最小保存的整数位数,假如小于等于Number的整数位数,则忽略;假如大于Number的整数位数,则在Number前面用0补足,直至Number的整数位数和MinimumIntegers相称。
MaximumFractions:最大保存的小数位数,假如大于等于Number的小数位数,则忽略;假如小于Number的小数位数,则对小数部门四舍五入,保存MaximumFractions位小数。
MinimumFractions:最少保存的小数位数,假如小于等于Number的小数位数,则忽略;假如大于Number的小数位数,则在Number的小数后面用0补足,直至Number的小数位数和MinimumFractions相称。
GroupingUsed:确定是否对每三个整数举行分组,也就是是否使用千位符。True:使用,False:不使用。
Log(NumberFormat2(12345.67, 0, 3, 3, False)) ' 输出:"12345.670"
Log(NumberFormat2(12345.67, 0, 3, 3, True)) ' 输出:"12,345.670" 四、日志记录函数(2个)
1、Log
Log (Message As String)
向日志记录输出一条Message信息记录。可以在 Logs 选项卡中检察日志。
Message:字符串信息,可以是字符串,可以是输出字符串的函数或表达式。
Log(DateTime.Date(DateTime.now)) ' 输出:"12/20/2024" 2、LogColor
LogColor (Message As String, Color As Int)
向日志记录输出一条Message信息记录。信息的字体颜色为Color。
LogColor(DateTime.Date(DateTime.now),xui.Color_Red) ' 输出:"12/20/2024" 五、位图加载函数(3个)
这三个关键字仅用于B4A,假如在B4J加载位图,请使用XUI或JFX 1、LoadBitmap
LoadBitmap (Dir As String, FileName As String) As Bitmap
加载位图。Dir是位图所在文件夹,FileName是位图文件名称。
请注意,安卓文件系统是区分大小写的。
假如图像大小很大,您应该考虑使用LoadBitmapSample加载。
图像存储文件的大小和实际图像大小关系不大,因为图像通常是压缩存储的。
Activity.SetBackgroundImage(LoadBitmap(File.DirAssets, "SomeFile.jpg")) 2、LoadBitmapResize
LoadBitmapResize (Dir As String, FileName As String, Width As Int, Height As Int, KeepAspectRatio As Boolean) As Bitmap
加载位图并设置其大小。位图比例将与装备比例相同。
Dir:位图所在文件夹。FileName:位图文件名称。
Width:设置的位图宽度,Height:设置的位图高度。
KeepAspectRatio:是否保持宽高比。True为保持,False为不保持。
与需要将容器 Gravity 设置为 FILL 的 LoadBitmapSample 不同,当 Gravity 设置为 CENTER 时,LoadBitmapResize 提供更好的结果。例如:
Dim bd As BitmapDrawable = Activity.SetBackgroundImage(LoadBitmapResize(File.DirAssets, "SomeFile.jpg", 100%x, 100%y, True))
bd.Gravity = Gravity.CENTER
大概:
Activity.SetBackgroundImage(LoadBitmapResize(File.DirAssets, "SomeFile.jpg", 100%x, 100%y, True)).Gravity = Gravity.CENTER 3、LoadBitmapSample
LoadBitmapSample (Dir As String, FileName As String, MaxWidth As Int, MaxHeight As Int) As Bitmap
加载位图。Dir:位图所在文件夹。FileName:位图文件名称。MaxWidth/MaxHeight:加载后的最大宽度/高度。
假如 MaxWidth 或 MaxHeight 小于位图尺寸,解码器将对位图举行二次采样。这可以在加载大图像时节省大量内存。
Panel1.SetBackgroundImage(LoadBitmapSample(File.DirAssets, "SomeFile.jpg", Panel1.Width, Panel1.Height)) 六、测试函数(3个)
1、Is
Is Name As Type As Booleann
测试对象是否属于给定类型Name。常用于遍历对象。
请注意,当数字转换为对象时,它可能会将其类型更改为不同类型的数字
(例如,Byte 可能会转换为 Int)。
For Each v As B4XView In Pane1
If v Is Button Then
v.Color=xui.Color_Cyan
End If
Next 2、IsNumber
IsNumber (Text As String) As Boolean
测试指定的字符串Text是否可以安全地解析为数字。
If IsNumber(TextField1.Text.Trim)=False Then
xui.MsgboxAsync("需要输入数值型数据!","提示")
TextField1.RequestFocus
Return
End If 3、SubExists
SubExists (Object As Object, Sub As String) As Boolean
测试对象Object是否包罗指定的子例程Sub。
Object:是指可能包罗该Sub的类模块、B4XPage、Activity等模块级别的对象的名称。
Sub:要检测是否存在的子程序名称。
假如对象未初始化或不是用户类的实例,则返回 false。
SubExists(Me,"Button1_Click") 测试当前模块是否包罗Button1_Click子例程。
SubExists(test1,"CreateMap") 测试名称为test1的模块是否包罗CreateMap子程序。 七、子程序创建及调用命令(7个)
1、Sub
Sub Name [(List of Parameters)]
声明(创建)一个子程序(例程),可以使用参数和返回值,代码以End Sub为结尾行。
Name:要声明(创建)的子程序(例程)名称,一般按B4X子例程定名规则定名,也可以按自己的意图自定义定名。
List of Parameters:一个或多个参数列表,参数应包括参数名称和类型,如是数组,括号内不写数组维度和大小。
Return-Type:返回值的类型,可以是任何类型,如是数组,括号内不写数组维度和大小(因声明的是数据类型而不是成员)。
可以不使用参数和返回值,这种情况下,该子程序就是一段纯粹的分支子程序代码,调用时作为分支程序流执行后返回。
使用了参数,调用时要向此子程序传递相干参数。
使用了返回值,我们在调用此子例程时可得到返回数据,但在子程序代码末端要使用Return返回指定类型的数据值。
Sub MySub (Name As String, Age As Int, OtherValues() As Double) As Boolean
Dim a As Int=0
For Each n As Double In OtherValues
If n<60 Then
a=1
Exit
End If
Next
Return IIf(Name.IndexOf("李")>=0 And Age<20 And a=0,True,False)
End Sub 2、CallSub
CallSub (Component As Object, Sub As String) As Object
调用给定的子程序(例程)。
Component:组件或模块名称。Sub:子程序(例程)名称。
CallSub 调用当前模块中的子程序时,将 Me 作为组件传递。
CallSub 也可调用属于不同模块的子程序。但只有在其他模块没有暂停时才会调用。 如该模块暂停,将返回一个空字符串。
您可以使用 IsPaused 来测试模块是否已暂停。
在B4A中,一个Activity不能调用不同Activity的子程序。 因为当前Activity启动后,其他Activity肯定会暂停。
CallSub 答应Activity调用子程序或服务调用Activity子程序。但不能调用代码模块的子程序。
示例:CallSub(Main, "RefreshData") 3、CallSub2
CallSub2 (Component As Object, Sub As String, Argument As Object) As Object
雷同于 CallSub。 使用单个参数调用 sub。Sub子程序只使用了一个参数时可使用此方法调用。
例如:有一个子程序如下:
Sub mysub(x As Int)
Log(x)
End Sub
我们可以有以下几种调用方法:
mysub(3) '只能在mysub所在模块调用。
CallSub(Me,mysub(3))
CallSub2(Me,"mysub",3) 4、CallSub3
CallSub3 (Component As Object, Sub As String, Argument1 As Object, Argument2 As Object) As Object
雷同于 CallSub2。 使用两个参数调用 sub。Sub子程序只使用了两个参数时可使用此方法调用。 5、CallSubDelayed
CallSubDelayed (Component As Object, Sub As String)
CallSubDelayed 是 StartActivity,StartService 和 CallSub 的组合。
与仅实用于当前正在运行的组件的 CallSub 不同,CallSubDelayed 将在需要时首先启动目的组件。
CallSubDelayed 也可以用于调用当前模块中的子程序。 不是直接调用这些子程序,而是将一条消息发送到消息队列。
处理惩罚消息时将调用子程序。 这在您想要在当前子程序“之后”执行某些操作(通常与 UI 事件相干)的情况下很有用。
请注意,假如您在整个应用程序处于后台(没有可见运动)时调用 Activity,则一旦目的运动恢复,子程序将被执行。
下面有两个子程序:
Sub MySub
Log("用CallSubDelayed调用了我!")
End Sub
Sub MySub1
Log("在CallSubDelayed之后用CallSub调用了我!")
End Sub
我们用两行语句分别调用这两个子程序:
CallSubDelayed(Me,"mysub")
CallSub(Me,"mysub1")
日志记录表现:mysub1运行完毕后才运行mysub。 6、CallSubDelayed2
CallSubDelayed2 (Component As Object, Sub As String, Argument As Object)
雷同于 CallSubDelayed。 使用单个参数调用子程序。Sub子程序只使用了一个参数时可使用此方法调用。 7、CallSubDelayed3
CallSubDelayed3 (Component As Object, Sub As String, Argument1 As Object, Argument2 As Object)
雷同于 CallSubDelayed。 使用两个参数调用子程序。Sub子程序只使用了两个参数时可使用此方法调用。 八、条件选择语句(3个)
1、If
开启条件判定,根据判定结果引导程序流。
①单个条件判定:
If condition Then
条件为真时执行的语句
[Else
条件为假时执行的语句
End If
单个条件判定也可以用单行代码写:If condition Then 条件为真时执行的语句
②多个条件判定:
If condition Then
statement
Else If condition Then
statement
...
Else
statement
End If 2、IIf
IIf (Condition As Boolean, TrueValue As Object, FalseValue As Object)
内联If -假如条件为True,返回TrueValue表达式的结果,否则返回FalseValue表达式的结果。
Dim s As String = IIf(Age>18,"成年","未成年") 3、Select
比较单个值和多个值,常用于对程序或控件返回的值的多种可能性举行判定,根据不同的值执行不同的语句。一般情况下将返回的值声明为一个变量,用Case来分析可能的值。完整的Select语句以Select开头,End Select结尾,中间用Case判定。
例如:我们定义一个多个按钮的点击事件,根据按钮的Tag来分辨点击了哪个按钮:
Sub btn_Click
Dim b As Button=Sender
Dim tag As String=b.Tag
Select tag
Case "btn1"
点击btn1执行的语句
Case "btn2"
点击btn2执行的语句
Case "btn3"
点击btn3执行的语句
...
End Select
End Sub 九、循环语句(3个)
1、For
For variable = value1 To value2
...
Next
假如迭代器变量没有提前声明,那么它将是Int类型。省略步长隔断Step interval,则默认步长为1。
大概:
For Each variable As type In collection
...
Next
示例:
For i = 1 To 10
Log(i) '将打印1到10(包括1和10)。
Next
For Each n As Int In Numbers '数组
Sum = Sum + n
Next 2、Until
Do Until condition
...
Loop
循环直到条件condition为真时结束。 3、While
Do While condition
...
Loop
当条件condition为真时举行循环。 十、命令行语句(6个)
1、Continue
停止执行当前的迭代,并继承执行下一个迭代。
Dim n As Int=2
Do While n<10
n=n+1
If n=3 Or n=5 Then
Continue
End If
Log(n)
Loop 2、Dim
声明单个变量:Dim variable name [= expression]
声明多个变量:Dim variable1 [= expression], variable2 [= expression], ...,
声明数组:Dim variable(Rank1, Rank2, ...)
例如:
Dim n As Int=2
Dim a=1,b=2,c=3 As Int
Dim a1=1 As Int,b1="study" As String,c1=10 As Double
Dim Days(7) As String
注意:用Dim声明的变量是公共变量(全局变量) 3、Exit
退出最内部的循环。请注意,在 Select 块内退出将退出 Select 块。
假如只有一个循环体(循环内没有循环),则退出该循环。 4、Return
Return
从当前sub返回,并可选择返回给定的值。
假如Sub设置了返回值,则需要Return value。 5、Sleep
Sleep (Value As Double) As Double
暂停当前过程的执行,并在指定时间Value后恢复。Value是以毫秒为单元的时间长短。 6、Type
Type type-name (field1, field2, ...)
声明一个布局,也就是类型变量。字段包括字段名称和类型。只能在 Sub_Globals 或 Sub Process_Globals 中使用。Type MyType (Name As String, Items(10) As Int)
Dim a, b As MyType
a.Initialize
a.Items(2) = 123 十一、捕获异常语句(2个)
1、Catch
在 Try 块中抛出的任何异常都将在 Catch 块中被捕获。调用 LastException 以获取捕获的异常。
Try
...
Catch
...
End Try
示例:
Try
Dim list1 As List=Array As String("a","b")
list1.Add("c")
Catch
Log(LastException) '输出:(UnsupportedOperationException) java.lang.UnsupportedOperationException
End Try 2、Try
在 Try 块中抛出的任何异常都将在 Catch 块中被捕获。调用 LastException 以获取捕获的异常。
Try
...
Catch
...
End Try 十二、别的关键字(10个)
1、Array
Array (list of values)
创建指定类型的单维数组。假如省略了类型,则将创建一个对象数组。
Dim Days() As String
Days = Array As String("Sunday", "Monday", ...) 2、CreateMap
CreateMap (key1: value1, key2: value2, ...)
使用给定的键/值对创建一个映射。
Dim m As Map = CreateMap("January": 1, "February": 2) 3、False
False As Boolean 4、GetType
GetType (object As Object) As String
返回一个表示对象object的java类型的字符串。
Log(GetType(Button1)) '输出:javafx.scene.control.Button 5、Me
Me As Object对于类:返回对当前实例的引用。
对于运动和服务:返回一个对象的引用,可以用于CallSub, CallSubDelayed 和 SubExists 关键字。
不能在代码模块中使用。 6、Not
Not (Value As Boolean) As Boolean
反转给定的布尔值的值。
Private Sub Button1_Click
CheckBox1.Checked=Not(CheckBox1.Checked)
End Sub 7、Null
Null As Object 8、Regex
Regex As Regex
与正则表达式相干的方法。
Log(Regex.IsMatch("a..","abc")) '输出:True
Log(Regex.IsMatch("ab*c","abbbbc")) '输出:True 9、Sender
Sender As Object
返回引发该事件的对象。仅在该事件例程中有用。例如:
Sub Button_Click
Dim b As Button
b = Sender
b.Text = "I've been clicked"
End Sub 10、True
True As Boolean
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]