iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
SideProject30

拿到一支Garmin錶,要怎麼開發app?系列 第 8

[Day-08] Monkey C的那些規則-2

  • 分享至 

  • xImage
  •  

這幾天工作量突然暴增,欠的工作債一次反撲、系統也挑這個時間點出狀況,真是久違的業力引爆...
不過還好,鐵人賽的節奏放慢,目前先一點一點看文件,在正式進入開發階段前,應該還撐得過去。

今天來看function,跟java的method應該是一樣的概念。

在Monkey C建立Function需要注意,宣告的function可以帶參數,
但是由於Monkey C是一種弱型別的動態語言,因此在宣告時是不會定義參數的型別的。
而為了避免呼叫function時帶入了非預期型別的引數,導致程式出現異常,
我們可以用兩個方法來判斷引數物件的型別,

一個是instanceof,可用來檢查物件是否是繼承自某個class

using Toybox.System;

var value = 5;
if (value instanceof Lang.Number) {
    System.println("value is a number");
}

一個是has,可用來檢查物件內容是否包含指定的symbol

using Toybox.Sensor as Sensor;
var sensorInfo = Sensor.getInfo();
if (sensorInfo has :accel && sensorInfo.accel != null) {
    var accel = sensorInfo.accel;
    var xAccel = accel[0];
    var yAccel = accel[1];
    System.println("x: " + xAccel + ", y: " + yAccel);
}

Monkey C建立Function時,不一定要指定return什麼東西回去,沒寫return也沒關係。
如果沒有指定function要return什麼,Monkey C 仍會return一個沒作用的"垃圾值",
不過沒差,只要不去管它就好。

針對沒有定義要return什麼的function,
可以直接呼叫,像這樣:

function myFunction1(test) {
    System.println(test);
}

myFunction1("測試1");

有回傳東西的function,可以建一個變數來儲存

function myFunction2(myValue) {
    var result = myValue * 2;
    return result;
}

var myResult = myFunction(2);

上一篇
[Day-07] Monkey C的那些規則-1
下一篇
[Day-09] Monkey C的那些規則-3
系列文
拿到一支Garmin錶,要怎麼開發app?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言