[]
CalcEngine.Functions.Function
Function
• new Function(name
, minArgs?
, maxArgs?
, functionDescription?
)
関数を定義するための抽象基本クラスを表します。
実例
class FactorialFunction extends GC.Spread.CalcEngine.Functions.Function {
constructor () {
super('FACTORIAL', 1, 1, {
description: "Function to calculate the Fibonacci number.",
parameters: [{ name: 'n' }]
});
}
evaluate (n) {
var fib = [0, 1];
for (var i = 2; i <= n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib[n];
}
}
spread.addCustomFunction(new FactorialFunction());
spread.getActiveSheet().setFormula(0, 0, '=FACTORIAL(10)');
名前 | 型 | 説明 |
---|---|---|
name |
string |
関数の名前。 |
minArgs? |
number |
- |
maxArgs? |
number |
- |
functionDescription? |
IFunctionDescription |
- |
• maxArgs: number
関数の引数の最大数を表します。
• minArgs: number
関数の引数の最小数を表します。
• name: string
関数の名前を表します。
• typeName: string
シリアル化のサポートに使用される型名の文字列を表します。
▸ acceptsArray(argIndex
): boolean
指定した引数に配列値が渡された場合に関数がこれを受け入れるかどうかを決定します。
function
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス。 |
boolean
指定した引数に配列値が渡された場合に関数がこれを受け入れる場合はtrue
、それ以外の場合はfalse
。
▸ acceptsError(argIndex
): boolean
関数がError値を処理できるかどうかを示します。
function
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス。 |
boolean
関数が指定した引数のError値を処理できる場合はtrue
、それ以外の場合はfalse
。
▸ acceptsMissingArgument(argIndex
): boolean
Evaluateメソッドが不明の引数を処理できるかどうかを判定します。
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス |
boolean
Evaluateメソッドが欠落引数を処理できる場合はtrue
、それ以外の場合はfalse
。
▸ acceptsReference(argIndex
): boolean
指定した引数にReference値が渡された場合に関数がこれを受け入れるかどうかを決定します。
function
名前 | 型 | 説明 |
---|---|---|
argIndex |
number |
引数のインデックス。 |
boolean
指定した引数にReference値が渡された場合に関数がこれを受け入れる場合はtrue
、それ以外の場合はfalse
。
▸ description(): IFunctionDescription
関数の記述を返します。
function
関数の記述。
▸ evaluate(...args
): any
引数に関数を適用した結果を返します。
名前 | 型 | 説明 |
---|---|---|
...args |
any |
関数の評価に使用する引数 |
any
引数に関数を適用した結果。
▸ findBranchArgument(test
): number
分岐引数を検索します。
実例
function EqualsFunction() {
this.name = 'Equals';
this.maxArgs = 3;
this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
return true;
}
EqualsFunction.prototype.findTestArgument = function() {
return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
if (logicalTestResult === true) {
return 1;
}
return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);
名前 | 型 | 説明 |
---|---|---|
test |
any |
テスト。 |
number
分岐条件として扱われる引数のインデックスを示します。
▸ findTestArgument(): number
この関数が分岐する場合にテスト引数を検索します。
実例
function EqualsFunction() {
this.name = 'Equals';
this.maxArgs = 3;
this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
return true;
}
EqualsFunction.prototype.findTestArgument = function() {
return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
if (logicalTestResult === true) {
return 1;
}
return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);
number
テスト条件として扱われる引数のインデックスを示します。
▸ isBranch(): boolean
この関数が条件引数に従って分岐するかどうかを示す値を取得します。
実例
function EqualsFunction() {
this.name = 'Equals';
this.maxArgs = 3;
this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
return true;
}
EqualsFunction.prototype.findTestArgument = function() {
return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
if (logicalTestResult === true) {
return 1;
}
return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);
boolean
このインスタンスが分岐する場合はtrue
、それ以外の場合はfalse
。
▸ isContextSensitive(): boolean
関数の評価が、評価を実行するコンテキストに依存するかどうかを決定します。
boolean
関数の評価がコンテキストに依存する場合はtrue
、それ以外の場合はfalse
。
▸ isVolatile(): boolean
この関数が、評価時に値が変わる自動再計算関数かどうかを決定します。
boolean
この関数が自動再計算関数である場合はtrue
、それ以外の場合はfalse
。