How to declare “throws” for `subscript(dynamicMember:)`in @dynamicMemberLookup in swift?
up vote
0
down vote
favorite
When using @dynamicMemberLookup in swift, subscript
cannot declare a "throws".
subscript(dynamicMember member: String) -> Any
This is OK.
subscript(dynamicMember member: String) throws -> Any
This will give a compile error.
swift subscript throws
add a comment |
up vote
0
down vote
favorite
When using @dynamicMemberLookup in swift, subscript
cannot declare a "throws".
subscript(dynamicMember member: String) -> Any
This is OK.
subscript(dynamicMember member: String) throws -> Any
This will give a compile error.
swift subscript throws
Swift doesn't yet support throwing subscripts or computed properties in general. Here's a relevant thread discussing what the semantics of such declarations would be: forums.swift.org/t/….
– Hamish
Nov 15 at 18:02
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
When using @dynamicMemberLookup in swift, subscript
cannot declare a "throws".
subscript(dynamicMember member: String) -> Any
This is OK.
subscript(dynamicMember member: String) throws -> Any
This will give a compile error.
swift subscript throws
When using @dynamicMemberLookup in swift, subscript
cannot declare a "throws".
subscript(dynamicMember member: String) -> Any
This is OK.
subscript(dynamicMember member: String) throws -> Any
This will give a compile error.
swift subscript throws
swift subscript throws
asked Nov 15 at 17:53
leavez
89121123
89121123
Swift doesn't yet support throwing subscripts or computed properties in general. Here's a relevant thread discussing what the semantics of such declarations would be: forums.swift.org/t/….
– Hamish
Nov 15 at 18:02
add a comment |
Swift doesn't yet support throwing subscripts or computed properties in general. Here's a relevant thread discussing what the semantics of such declarations would be: forums.swift.org/t/….
– Hamish
Nov 15 at 18:02
Swift doesn't yet support throwing subscripts or computed properties in general. Here's a relevant thread discussing what the semantics of such declarations would be: forums.swift.org/t/….
– Hamish
Nov 15 at 18:02
Swift doesn't yet support throwing subscripts or computed properties in general. Here's a relevant thread discussing what the semantics of such declarations would be: forums.swift.org/t/….
– Hamish
Nov 15 at 18:02
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Using throws
in subscript
is not supported by the language right now. However you can use some tricks to avoid that, meanwhile, keep the feature of throws
:
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
Just declare the subscription return an block, then add a ()
behind the function to execute the real function. So you could code like this:
@dynamicMemberLookup
class A {
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
}
let a = A()
let value = try? a.doWhatYouWant()
let value2 = try? a.anotherMethod()
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53325301%2fhow-to-declare-throws-for-subscriptdynamicmemberin-dynamicmemberlookup-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Using throws
in subscript
is not supported by the language right now. However you can use some tricks to avoid that, meanwhile, keep the feature of throws
:
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
Just declare the subscription return an block, then add a ()
behind the function to execute the real function. So you could code like this:
@dynamicMemberLookup
class A {
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
}
let a = A()
let value = try? a.doWhatYouWant()
let value2 = try? a.anotherMethod()
add a comment |
up vote
0
down vote
Using throws
in subscript
is not supported by the language right now. However you can use some tricks to avoid that, meanwhile, keep the feature of throws
:
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
Just declare the subscription return an block, then add a ()
behind the function to execute the real function. So you could code like this:
@dynamicMemberLookup
class A {
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
}
let a = A()
let value = try? a.doWhatYouWant()
let value2 = try? a.anotherMethod()
add a comment |
up vote
0
down vote
up vote
0
down vote
Using throws
in subscript
is not supported by the language right now. However you can use some tricks to avoid that, meanwhile, keep the feature of throws
:
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
Just declare the subscription return an block, then add a ()
behind the function to execute the real function. So you could code like this:
@dynamicMemberLookup
class A {
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
}
let a = A()
let value = try? a.doWhatYouWant()
let value2 = try? a.anotherMethod()
Using throws
in subscript
is not supported by the language right now. However you can use some tricks to avoid that, meanwhile, keep the feature of throws
:
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
Just declare the subscription return an block, then add a ()
behind the function to execute the real function. So you could code like this:
@dynamicMemberLookup
class A {
public subscript(dynamicMember member: String) -> () throws -> Any {
return { try REAL_FUNCTION_THAT_THROWS() }
}
}
let a = A()
let value = try? a.doWhatYouWant()
let value2 = try? a.anotherMethod()
answered Nov 15 at 18:06
leavez
89121123
89121123
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53325301%2fhow-to-declare-throws-for-subscriptdynamicmemberin-dynamicmemberlookup-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Swift doesn't yet support throwing subscripts or computed properties in general. Here's a relevant thread discussing what the semantics of such declarations would be: forums.swift.org/t/….
– Hamish
Nov 15 at 18:02