Skip to main content
Glama

Magic-API MCP Server

by Dwsy
magicscript-syntax-guide.md2.72 kB
# Magic-Script `?:` 语法详解 ## 🎯 `?:` 语法的作用 ### **1. 在函数签名中的作用 (正确用法)** `?:` 语法**仅在函数签名中有效**,用于标记函数参数为**可选参数**。 #### **语法格式** ```javascript // 基础语法 functionName(paramName?: Type) -> ReturnType // 实际示例 asInt(defaultValue?: int) -> int page(sql: String, limit?: long, offset?: long) -> Object ``` #### **含义说明** - **位置**: 仅出现在函数参数定义中 - **作用**: 标记该参数为可选参数,调用时可以省略 - **示例**: - `asInt(value?: int)` - `value` 参数可以省略 - `page(sql, limit?, offset?)` - `limit` 和 `offset` 都可以省略 ### **2. 在代码逻辑中的错误用法 (已修复)** ❌ **错误用法** (JavaScript风格,Magic-Script不支持): ```javascript // 错误: 在代码中这样使用是错误的 var page = params.page ?: 1; var size = params.size ?: 10; ``` ✅ **正确用法** (Magic-Script三元运算符): ```javascript // 正确: 使用标准的条件表达式 var page = params.page ? params.page : 1; var size = params.size ? params.size : 10; ``` ## 📋 语法规则对比 | 场景 | 语法 | 含义 | 状态 | |------|------|------|------| | **函数签名** | `param?: Type` | 参数可选 | ✅ 正确 | | **代码逻辑** | `condition ?: value` | 空值合并 | ❌ 错误 | | **代码逻辑** | `condition ? value1 : value2` | 三元运算 | ✅ 正确 | ## 🔍 实际修复案例 ### **修复前 (错误)** ```javascript // code_generation.py - 错误用法 var page = params.page ?: 1; var size = params.size ?: 10; // kb_examples.py - 错误用法 params.offset = (params.page ?: 1 - 1) * (params.size ?: 10); ``` ### **修复后 (正确)** ```javascript // code_generation.py - 正确用法 var page = params.page ? params.page : 1; var size = params.size ? params.size : 10; // kb_examples.py - 正确用法 params.offset = (params.page ? params.page : 1 - 1) * (params.size ? params.size : 10); ``` ## ⚠️ 重要提醒 1. **函数签名中**: `?:` 表示"该参数是可选的" ✅ 2. **代码逻辑中**: `?:` 语法不存在,应该使用 `? :` 三元运算符 ✅ 3. **区分清楚**: 不要将函数签名语法用于实际代码逻辑 ## 🎯 最佳实践 - ✅ **函数签名**: `asInt(value?: int)` - 表示 `value` 参数可选 - ✅ **代码逻辑**: `params.page ? params.page : 1` - 三元条件表达式 - ✅ **参数检查**: `if (!param) { /* 处理空值 */ }` - 显式空值检查 --- **总结**: `?:` 语法是函数参数可选性的标记符号,仅在函数签名中使用。在代码逻辑中请使用标准的 `condition ? value1 : value2` 三元运算符语法。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dwsy/magic-api-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server