דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה | תיקון קוד של kotlin

עזרה | תיקון קוד של kotlin

מתוזמן נעוץ נעול הועבר תכנות
14 פוסטים 3 כותבים 458 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • M mmmm

    א. תודה על התגובה המהירה(לא חשבתי שמישהו יענה לי עכשיו)
    @yossiz אמר בעזרה | תיקון קוד של kotlin:

    כפי הנראה כבר תיקנת את ismpty ל-isEmpty

    ב. היה כתוב שם משהו אחר לגמרי ושינתי את זה לזה isEmpty וכדאי לבדוק שהפנקציה קיימת שיניתי את זה isempty לראות האם הוא מקפיץ שגיאה
    ג. בקוד המיקורי היה כתוב

    if (!TextUtils.isEmpty(id)) {
    

    למה זה נותן לא עובד? האם מה שעשיתי עושה את אותו פעולה?
    עריכה: יששש!!!! התקמפל (מקווה שזה גם יעבוד)
    תודה רבה רבה!!!

    yossizY מנותק
    yossizY מנותק
    yossiz
    כתב ב נערך לאחרונה על ידי yossiz
    #4

    @mmmm הפונקציה TextUtils.isEmpty קיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:

    if (!Strings.isNullOrEmpty(id)) {
    

    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

    M yossizY 2 תגובות תגובה אחרונה
    4
    • yossizY yossiz

      @mmmm הפונקציה TextUtils.isEmpty קיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:

      if (!Strings.isNullOrEmpty(id)) {
      
      M מנותק
      M מנותק
      mmmm
      כתב ב נערך לאחרונה על ידי mmmm
      #5

      @yossiz זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?

      @yossiz אמר בעזרה | תיקון קוד של kotlin:

      if (!Strings.isNullOrEmpty(id)) {

      ראיתי שזה מה שכתבו (google) וחשבתי שאין עניין ב null עכשיו אני קולט שאולי כן כדאי

      yossizY רפאלר 2 תגובות תגובה אחרונה
      1
      • M mmmm

        @yossiz זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?

        @yossiz אמר בעזרה | תיקון קוד של kotlin:

        if (!Strings.isNullOrEmpty(id)) {

        ראיתי שזה מה שכתבו (google) וחשבתי שאין עניין ב null עכשיו אני קולט שאולי כן כדאי

        yossizY מנותק
        yossizY מנותק
        yossiz
        כתב ב נערך לאחרונה על ידי
        #6

        @mmmm בשביל הקוד שהצעתי לא צריך לייבא שום דבר.

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        M תגובה 1 תגובה אחרונה
        2
        • yossizY yossiz

          @mmmm בשביל הקוד שהצעתי לא צריך לייבא שום דבר.

          M מנותק
          M מנותק
          mmmm
          כתב ב נערך לאחרונה על ידי
          #7

          @yossiz אמר בעזרה | תיקון קוד של kotlin:

          @mmmm בשביל הקוד שהצעתי לא צריך לייבא שום דבר.

          את זה הבנתי, אני שואל מה צריך לייבאות בשביל הקוד שהוא כתב
          עדכון, הכן עובד!!

          yossizY תגובה 1 תגובה אחרונה
          0
          • M mmmm

            @yossiz אמר בעזרה | תיקון קוד של kotlin:

            @mmmm בשביל הקוד שהצעתי לא צריך לייבא שום דבר.

            את זה הבנתי, אני שואל מה צריך לייבאות בשביל הקוד שהוא כתב
            עדכון, הכן עובד!!

            yossizY מנותק
            yossizY מנותק
            yossiz
            כתב ב נערך לאחרונה על ידי
            #8

            @mmmm אני לא יודע

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה
            0
            • M מנותק
              M מנותק
              mmmm
              כתב ב נערך לאחרונה על ידי
              #9

              https://mitmachim.top/topic/40137/שיתוף-הרחבה-שבניתי-לבדיקה-האם-תעודת-זהות-תקנית

              תגובה 1 תגובה אחרונה
              0
              • yossizY yossiz

                @mmmm הפונקציה TextUtils.isEmpty קיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:

                if (!Strings.isNullOrEmpty(id)) {
                
                yossizY מנותק
                yossizY מנותק
                yossiz
                כתב ב נערך לאחרונה על ידי yossiz
                #10

                @yossiz אמר בעזרה | תיקון קוד של kotlin:

                @mmmm הפונקציה TextUtils.isEmpty קיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:

                if (!Strings.isNullOrEmpty(id)) {
                

                נראה לי שהתכוונתי לזה:

                fun idVerification(id: String?): Boolean {
                    if (!id.isNullOrEmpty()) {
                

                אבל אין צורך. אפשר גם כך:

                fun idVerification(id: String): Boolean {
                    if (!id.isEmpty()) {
                

                כי אז אסור לקרוא לפונקציה עם. ערך null

                אבל עדיין צריך לי עיון במקרה של interop עם Java

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                M תגובה 1 תגובה אחרונה
                2
                • yossizY yossiz

                  @yossiz אמר בעזרה | תיקון קוד של kotlin:

                  @mmmm הפונקציה TextUtils.isEmpty קיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:

                  if (!Strings.isNullOrEmpty(id)) {
                  

                  נראה לי שהתכוונתי לזה:

                  fun idVerification(id: String?): Boolean {
                      if (!id.isNullOrEmpty()) {
                  

                  אבל אין צורך. אפשר גם כך:

                  fun idVerification(id: String): Boolean {
                      if (!id.isEmpty()) {
                  

                  כי אז אסור לקרוא לפונקציה עם. ערך null

                  אבל עדיין צריך לי עיון במקרה של interop עם Java

                  M מנותק
                  M מנותק
                  mmmm
                  כתב ב נערך לאחרונה על ידי
                  #11

                  @yossiz אמר בעזרה | תיקון קוד של kotlin:

                  @mmmm הפונקציה TextUtils.isEmpty קיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:
                  if (!Strings.isNullOrEmpty(id)) {

                  נראה לי שהתכוונתי לזה:
                  fun idVerification(id: String?): Boolean {
                  if (!id.isNullOrEmpty()) {

                  לא הבנתי, זה אותו דבר???

                  @yossiz אמר בעזרה | תיקון קוד של kotlin:

                  if (!id.isEmpty()) {
                  

                  זה מה שעשיתי

                  @yossiz אמר בעזרה | תיקון קוד של kotlin:

                  כי אז אסור לקרוא לפונקציה עם. ערך null

                  לא חושב שיש דרך לקראות לפונקציה עם ערך null במקרה שלי

                  @yossiz אמר בעזרה | תיקון קוד של kotlin:

                  אבל עדיין צריך לי עיון במקרה של interop עם Java

                  לא הבנתי (א. מה זה interop? (סליחה על הבורות) ב. זה kotlin לא java)

                  תגובה 1 תגובה אחרונה
                  0
                  • M mmmm

                    @yossiz זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?

                    @yossiz אמר בעזרה | תיקון קוד של kotlin:

                    if (!Strings.isNullOrEmpty(id)) {

                    ראיתי שזה מה שכתבו (google) וחשבתי שאין עניין ב null עכשיו אני קולט שאולי כן כדאי

                    רפאלר מנותק
                    רפאלר מנותק
                    רפאל
                    כתב ב נערך לאחרונה על ידי רפאל
                    #12

                    @mmmm אמר בעזרה | תיקון קוד של kotlin:

                    זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?

                    הנתיב המלא של המחלקה : android.text.TextUtils

                    Java

                    המתודה isNullOrEmpty איננה קיימת בJava והשימוש בstring.isEmpty עם Null יניב את השגיאה NullPointerException, אי לכך הוסיפו אנשי Android לTextUtils את המתודות הבאות:

                    • isBlank
                    • isEmpty
                    • isNotBlank
                    • isNotEmpty
                       

                    Kotlin

                    כל המתודות הנ"ל בנוסף לשני המתודות הבאות [המיועדות עבור String?) Nullable Receiver)]:

                    • isNullOrEmpty
                    • isNullOrBlank

                    מומשו בחבילה kotlin.text המהווה חלק מהStandard Library של Kotlin **, כך שאין סיבה להשתמש במחלקה TextUtils השייכת לAndroid SDK.
                     

                    @yossiz אמר בעזרה | תיקון קוד של kotlin:

                    אבל עדיין צריך לי עיון במקרה של interop עם Java

                    המתודה isEmpty מסומנת עם @InlineOnly מה שהופך אותה ללא זמינה עבור Java (המתודה מתורגמת לPrivate) אולם במקרים רבים אחרים הדבר אכן מהווה בעיה חמורה (בניגוד לKotlin, אף אחד לא מונע ממפתח בJava להעביר Null למתודות בKotlin המצפות לNon-Nulls), כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.

                    ** אין צורך ליבא את החבילה kotlin.text על מנת לעשות שימוש במתודות הנ"ל, הדבר מתבצע באופן מרומז עבור כל החבילות המרכיבות את הStandard Library, בדומה לשפות רבות אחרות.

                    yossizY תגובה 1 תגובה אחרונה
                    7
                    • רפאלר רפאל

                      @mmmm אמר בעזרה | תיקון קוד של kotlin:

                      זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?

                      הנתיב המלא של המחלקה : android.text.TextUtils

                      Java

                      המתודה isNullOrEmpty איננה קיימת בJava והשימוש בstring.isEmpty עם Null יניב את השגיאה NullPointerException, אי לכך הוסיפו אנשי Android לTextUtils את המתודות הבאות:

                      • isBlank
                      • isEmpty
                      • isNotBlank
                      • isNotEmpty
                         

                      Kotlin

                      כל המתודות הנ"ל בנוסף לשני המתודות הבאות [המיועדות עבור String?) Nullable Receiver)]:

                      • isNullOrEmpty
                      • isNullOrBlank

                      מומשו בחבילה kotlin.text המהווה חלק מהStandard Library של Kotlin **, כך שאין סיבה להשתמש במחלקה TextUtils השייכת לAndroid SDK.
                       

                      @yossiz אמר בעזרה | תיקון קוד של kotlin:

                      אבל עדיין צריך לי עיון במקרה של interop עם Java

                      המתודה isEmpty מסומנת עם @InlineOnly מה שהופך אותה ללא זמינה עבור Java (המתודה מתורגמת לPrivate) אולם במקרים רבים אחרים הדבר אכן מהווה בעיה חמורה (בניגוד לKotlin, אף אחד לא מונע ממפתח בJava להעביר Null למתודות בKotlin המצפות לNon-Nulls), כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.

                      ** אין צורך ליבא את החבילה kotlin.text על מנת לעשות שימוש במתודות הנ"ל, הדבר מתבצע באופן מרומז עבור כל החבילות המרכיבות את הStandard Library, בדומה לשפות רבות אחרות.

                      yossizY מנותק
                      yossizY מנותק
                      yossiz
                      כתב ב נערך לאחרונה על ידי yossiz
                      #13

                      @רפאל וואו, תודה! איזה תשובה מחכימה!

                      תודה על מילת המפתח Nullable Receiver - מיד הולך ללמוד על זה... באמת קצת לא הבנתי איך זה אמור לעבוד.

                      כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.

                      באמת ראיתי ב-decompilation של הקוד של @mmmm שזה מקומפל ככה:

                      public final boolean idVerification(@NotNull String id) {
                          Intrinsics.checkNotNullParameter(id, "id");
                          if (id.length() == 0) {
                              return false;
                          }
                      

                      מה שלימד אותי שיש בדיקת null כמו שכתבת וש-isEmpty הוא inline... אבל לא ידעתי מה הכללים בזה

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      רפאלר תגובה 1 תגובה אחרונה
                      2
                      • yossizY yossiz

                        @רפאל וואו, תודה! איזה תשובה מחכימה!

                        תודה על מילת המפתח Nullable Receiver - מיד הולך ללמוד על זה... באמת קצת לא הבנתי איך זה אמור לעבוד.

                        כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.

                        באמת ראיתי ב-decompilation של הקוד של @mmmm שזה מקומפל ככה:

                        public final boolean idVerification(@NotNull String id) {
                            Intrinsics.checkNotNullParameter(id, "id");
                            if (id.length() == 0) {
                                return false;
                            }
                        

                        מה שלימד אותי שיש בדיקת null כמו שכתבת וש-isEmpty הוא inline... אבל לא ידעתי מה הכללים בזה

                        רפאלר מנותק
                        רפאלר מנותק
                        רפאל
                        כתב ב נערך לאחרונה על ידי
                        #14

                        @yossiz אמר בעזרה | תיקון קוד של kotlin:

                        isEmpty הוא inline

                        אכן, זה עוד סיבה לטובת המתודות בkotlin.text, הנהנות מיתרון מזערי במהירות, משום שהקוד בתוך המתודות יוטמע במקום הקריאה (מה שחוסך את הOverhead של קריאה למתודה).

                        תגובה 1 תגובה אחרונה
                        2
                        • dovidD dovid העביר נושא זה מ-תכנות ב-
                        תגובה
                        • תגובה כנושא
                        התחברו כדי לפרסם תגובה
                        • מהישן לחדש
                        • מהחדש לישן
                        • הכי הרבה הצבעות


                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום