2009-08-11 4 views
1

У меня есть статический класс настроек, в котором мое приложение может извлекать настройки. Проблема в том, что некоторые из этих настроек являются строками, а другие - это ints или numbers. Пример:Как разрешить любой тип данных, возвращаемых функцией в actionscript 3?

package 
{ 
    public final class Settings 
    { 
     public static function retrieve(msg:String) 
     { 
      switch (msg) 
      { 
       case "register_link": 
        return "http://test.com/client/register.php"; 
        break; 
          case "time_limit": 
            return 50; 
            break; 
      } 
     } 
    } 
} 

Теперь в первом случае он должен отправить строку, а во второй - uint. Однако, как мне установить это в объявлении функции? Вместо, например. функция retrieve (msg: String): String или ...: uint? Если я не задаю тип данных, я получаю предупреждение.

ответ

2

Используйте *

public static function retrieve(msg:String):* 
{ 
    if (msg == "age") { 
    return 23; 
    } else { 
    return "hi!"; 
    } 
} 
3

HanClinto ответил на ваш вопрос, но я хотел бы также просто сделать отметку другого возможного решения, которое держит типов возврата, напечатанного. Я также считаю, что это более чистое решение.

Вместо статического получить функцию, вы могли бы просто использовать статические consts, такие как:

package 
{ 
    public final class Settings 
    { 
     public static const REGISTER_LINK:String = "my link"; 
     public static const TIME_LIMIT:uint= 50;    
    } 
} 

и так далее. Это личное предпочтение, но я думал, что брошу его туда.

+0

спасибо. – Tom

+0

Согласен. Хотя полезно знать, как возвращать разные типы из функции ... Я * никогда не делал этого в проекте. Использование класса со статическими константами не только более чистое, но и более производительное. –

Смежные вопросы